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.

:hidden:

onnx
nnef
inference_model
model
fact
runnable
tensor

API Reference

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().load("./mobilenetv2-7.onnx").into_model().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 Tensor 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.

Running on GPU

The getting started example above runs on the CPU, which is the default runtime. On systems with an NVIDIA GPU, tract can leverage CUDA for accelerated inference. The only change is in how the model is prepared: instead of calling into_runnable(), use a CUDA runtime to prepare the model.

import tract

# load and type the model as before
model = tract.onnx().load("./mobilenetv2-7.onnx").into_model()

# prepare it for the CUDA runtime
cuda = tract.runtime_for_name("cuda")
runnable = cuda.prepare(model)

# run exactly as before
outputs = runnable.run([im])
output = outputs[0].to_numpy()

The Metal runtime works the same way on Apple Silicon Macs: just replace "cuda" with "metal".

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.23.3.tar.gz (7.5 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.23.3-cp314-cp314-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.14Windows x86-64

tract-0.23.3-cp314-cp314-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tract-0.23.3-cp314-cp314-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp314-cp314-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tract-0.23.3-cp314-cp314-macosx_10_15_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

tract-0.23.3-cp314-cp314-macosx_10_15_universal2.whl (19.8 MB view details)

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

tract-0.23.3-cp313-cp313-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.13Windows x86-64

tract-0.23.3-cp313-cp313-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tract-0.23.3-cp313-cp313-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp313-cp313-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tract-0.23.3-cp313-cp313-macosx_10_13_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tract-0.23.3-cp313-cp313-macosx_10_13_universal2.whl (19.8 MB view details)

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

tract-0.23.3-cp312-cp312-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.12Windows x86-64

tract-0.23.3-cp312-cp312-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tract-0.23.3-cp312-cp312-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp312-cp312-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tract-0.23.3-cp312-cp312-macosx_10_13_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tract-0.23.3-cp312-cp312-macosx_10_13_universal2.whl (19.8 MB view details)

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

tract-0.23.3-cp311-cp311-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.11Windows x86-64

tract-0.23.3-cp311-cp311-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tract-0.23.3-cp311-cp311-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp311-cp311-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tract-0.23.3-cp311-cp311-macosx_10_13_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

tract-0.23.3-cp311-cp311-macosx_10_13_universal2.whl (19.8 MB view details)

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

tract-0.23.3-cp310-cp310-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.10Windows x86-64

tract-0.23.3-cp310-cp310-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tract-0.23.3-cp310-cp310-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp310-cp310-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tract-0.23.3-cp310-cp310-macosx_10_13_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

tract-0.23.3-cp310-cp310-macosx_10_13_universal2.whl (19.8 MB view details)

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

tract-0.23.3-cp39-cp39-win_amd64.whl (10.7 MB view details)

Uploaded CPython 3.9Windows x86-64

tract-0.23.3-cp39-cp39-musllinux_1_2_x86_64.whl (11.3 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

tract-0.23.3-cp39-cp39-manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

tract-0.23.3-cp39-cp39-macosx_11_0_arm64.whl (9.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tract-0.23.3-cp39-cp39-macosx_10_13_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

tract-0.23.3-cp39-cp39-macosx_10_13_universal2.whl (19.8 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for tract-0.23.3.tar.gz
Algorithm Hash digest
SHA256 a6cc343c65343a5acb6f633b990ba5c8ae0d8421b710b8c346c1f205ef40aded
MD5 26e02afe1bba16dff41ee12bd536b2cc
BLAKE2b-256 496cae4120adaa0096ffb698449851676154deb5e9585cb8dc67de57b2910a98

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3ba07477083303d9ac10551966ed5759edc753ac2779a91488d0c754badaa919
MD5 7778c4464541adbececfc7697f9d1e3a
BLAKE2b-256 4c51ec8ec0227fd9d880c8fa88dde30ed05d3ce9ed63ca635c13cf20a2757d5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f84cfda4051dee1a56517c3aabde21d65073095ffe38daea0f7c7777910d619c
MD5 b72bbde40261a1b26ff29d3e2f838889
BLAKE2b-256 3e7402cd9edae1d8b5ada6c4f6682f607bed49c0c1e1336c3ab9e3eb537df460

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6fd1094c4292ba38ae9c44e3203c238c0d4911f70d260ff5aac7dfdf086595f
MD5 f1326cc85fe07b183a5aa8d2bb18d708
BLAKE2b-256 fb7e966e13290049bb74adefe7f74633b1de7ac616abed9b91659b2ded0e79e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 185fdc03a458b3689c7ce74da875e47ccd60fdf5ee98433ed012814bf4ad0c66
MD5 fb8873f01cd3ace1e43e3f1eada11f74
BLAKE2b-256 32263e56fd27d5ea661f41e493270a554e4fe5f935ad487ab21285d8d30f1120

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0fdc66391d12add741098156407c6128a95600fa7670594cd538ca7a72f7cc30
MD5 ae57b68dec42e40b0a057488b5c274d4
BLAKE2b-256 7b137b5086c927c8b55ae06cfaaaf0ede20e7661f742268e4f7a09afdbc278a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 44e9972512a60d043387767b3027342d1fe5b00506acadda1d6af2a0618f0691
MD5 dbc2c0d6667a5faca0e6cdd73f9b7818
BLAKE2b-256 9ae2cb2e8aafcb7cfd9d887ac8ddfed677751985c007d5148bd22609660441ec

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c58defcdd28e1122488727392cc545f3f45aa5817b4a28a3049222c4429ef7ac
MD5 718ab2138050d473f28a694e82273207
BLAKE2b-256 ea724e5e3e7dceaab12422e4c6f1d3496ba240ef15d75d8f79e5a3e39f4a2e03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8991bc167ea425fb1f9783bb82e3542b4e0555ec210da3186f5b3de4cdcdb9eb
MD5 1c03e4994120bc10d8b685df1119ee4f
BLAKE2b-256 3bf1c3e597b1d9b385b11def88868a6e3806be39fbb3a3bc1ded7b4e6654cf52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1001ffcc2c4987ee5b72a65e5216ee63c556daf8b14b95847fbba4a731fb42d7
MD5 0bad556367367cf9754a7b7728925459
BLAKE2b-256 467b58fa2647f494e4742a96ff2b4028db746d9945c9401e4bdff598e2c0eb40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a197ade39d3213ea377e5ff73e50d33f90f027ca3bfd761f2e7a3465cf3ae38
MD5 fe369be65aa590c9e7461fe2cdeeef95
BLAKE2b-256 ba67f9ce91ee4cb1014e1a4a7f89a169fc813f65a7f349fcaa7ae7f660106802

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 aa364a103dff4d1d918e0b067c6a58dab2386b67ed901d7f3eb863f61e6a8a10
MD5 138e0f9db509cc900ce34063908e12dc
BLAKE2b-256 3f630219123fd2db0bb127a8be900cca324442298aa5a31f5ecbf975e3a27f85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3aa786b8106f7ca80734357164b1992806b542078d152068e7df63d1b041399d
MD5 a31b8ea04f28640a9f96f84122649bef
BLAKE2b-256 798076fc3a3d6f08a575eb95deb7041df45592c0acdf62c66b9ce4ccd1ea0258

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 dbc963645867fa386561cbc3322d04670534a530f9636f64434a243872fbd0d4
MD5 b317c8043d317405e5de776a8183fa9c
BLAKE2b-256 998b7722f8a7d6fec29f37834e2dbc06a12a91195defb562d48769697eb78d64

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 171fc33916548d63e883e802a5eac5a1be1cc17d4e029b0b1faf3023212c6e8c
MD5 974f5800bff8a4389654783943bc217e
BLAKE2b-256 c519fb4b54e9ea0dca789bb636007e5ffa4b9ee37a8f40b6ab7598536149d4d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a03559354d70f67d13b894b33b564f384142a52ebe46413c2eeaaf26918d6e3a
MD5 5d8fdabc0f4c85949c42347f54fb2936
BLAKE2b-256 2bf5bf1d7dbdd89b45eda2dfeb21680aa5472c2881b39869c9b51881a68df09a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e72f1967e8a97e58ad0f8edc0a03f99c7d91c538b7a10bb12abdc9ef41b22126
MD5 dddd11aa15b746224939a40891594d8d
BLAKE2b-256 afaafdf7c57e7ef90e5e426b24c7c16c4dd3028ec8ff6f59cf4ab2142b1d113f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 39f790dabf3cbdf1ab102a60b042cacdaca3f0bf415836d03380dac6b5964e05
MD5 275fdf588935eccaa55a4cf811a7110a
BLAKE2b-256 bfc8c26ebc75553937191299eaaf2df7b1247089f45da95b6348512cfb291723

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 e609d711ae4f49e4202a1ad5a996f8438c69eede194459b844d59feca668419c
MD5 a58c325551aeed78fd208d1fc0934f75
BLAKE2b-256 28504f0b44a7f15d817ed3eb5f5071a27f7403954f955e7cba223427fdc3c8c1

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e89432b6a125367bde9200bb9876f9a3163591f51bc21f69c42279e7105fc492
MD5 289fb5d393f92947ad58daf9b6778995
BLAKE2b-256 aeb96aa8db979e5490a468005116982c0743be026fa7100a7ed13bbfa862d1a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f52495b988bcec06c4aa0b17aee29324f0de744576c82dc1446e8390fff125ff
MD5 f5dd0077103136998e48c2e735ee75c2
BLAKE2b-256 fdeeb157a18a4dcdf639b462b88ca9f564fbcc69c2ba65741fccc3bbd3a6fb28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87fd5f33f1f6b522829cc1aeaedea31a5d4989159e12fe84cafc3e9df69371ee
MD5 b60373dfe88e5d57c9c6fa8ca9c53433
BLAKE2b-256 86d7ba4829aed916e037feff7490a1a0c59b68468efb85a3800ee592b3c7f799

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cac21f3953a95b3c0f6925ebe5e28db3914a9ac88c5014a23dcdd20b2f7fa19
MD5 84c7b63e36e58101bd3023c91450ce37
BLAKE2b-256 5b3caa32c56d20283cde6c7f5bf107472f42be66bf4e892467edbfacfd016212

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2fb0e0bd50c7e98b0cd4521d523d60336ca023c798396d0e8277a424d36eb392
MD5 5412daa1107fc9c2bf861bab2f425592
BLAKE2b-256 0aa8c02014c7fadd974eba55d2176089c38086b0ab46f7d12a72426a9a38743b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 275587c1daae85f93101b322f4f3bbb8451a6d3736347af401d9835054464e52
MD5 4f3fe4de5aa7d962465367c13dab97c4
BLAKE2b-256 5d9c6ea64ad715ff33734dbab0d1e3db6725cf47bb6eaa25225bb55f2216a0da

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0304d8ecea5de084f6ec638d2200aaec220a911b01f4cc52684e1067eed8dd26
MD5 0320d303991df7b409d701de257526bd
BLAKE2b-256 b2863842fd88931f381eec1dc828c9124d4150da08691a2e0d2023078efa332f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 47e6223d7a1ebf2ae125f43f9a773240f3059f85a4dc4f50d7622ed47a14acca
MD5 873961ebb6000d8b8e7ed1d84a25e78b
BLAKE2b-256 46bc0f08aa1c574904423d6dab0c13d006cd5ff58ec5098d29e8f4b9b510427e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce22e3dbda82024298a43c78179ef817a8af68c848dd3d5fdae1482e3b305755
MD5 7dec89da5071c535f02ff395db36b431
BLAKE2b-256 07352d85abbfd5ef56e7f2e797589f1836234ae65520e4eefc5a357c636b95a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5e0b07f16005d5717ca0be20726fac8eeb22f345fbb831b750e54486f5d31d1
MD5 5a46b5824f29e8e20406e3d0e2b8d823
BLAKE2b-256 3e419028b026bc3c0b742f02d548af09dfa65040d0d96b1f095ecba485f94896

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c2fba11c2c3bf00cc3e9546928d3d674070d75c4c7ec19f77230973bfefb25af
MD5 dc61d9a456fbfaa9148ec351d74f23a8
BLAKE2b-256 245205d28c326cb6e332836181b0096ac8ba66105b7fe785cc025ae389a33729

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 861e0eb1af6885391f632d8b8f4b6080e796d8ca4722a48a6bd1d8f60cd5ea88
MD5 9f1a64d0c787115b36aff6f393444467
BLAKE2b-256 dbbb5877d1180f81cfdc0bb5342f2243a0df61793910e89f4d9f269c9b31abd6

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for tract-0.23.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 51cf5f473536829f1f05656bbed6687cbf128aa6278c062cc2ba930e0d1f9564
MD5 c1475ab4501e7360d421a22991815481
BLAKE2b-256 89d04989af03a20efd0d16132928fb9785ea2b6b0e5780c9831a86089f912640

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e7b3ac9ad011e34bc7dd26e19ac828217cb19970bcfb1e5c4d958629e23aa3f7
MD5 dec7b86eaaf64c4a8fb6724e93c01561
BLAKE2b-256 77f08fe7717c345243773ac552b1543f8e738ff4ca69a158930b3b244a8abb4b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08c821f0e470c7758cd40e74306d5b2409568320126803457f68a5e5f8ccc78d
MD5 7b0344374ee57853c9c19dd645468e18
BLAKE2b-256 e3a41a2e8769d6d63cc1884f186fa3b87f909ca43426992e0f6577cd055d8db0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16c80daa1c7521ab94de1dc188c7c59c373cda9f1f851dffd0c11b8b4bbbd180
MD5 511a86a46c9aacf2dab6c4b41727f674
BLAKE2b-256 121c0bac4250a1c16fd10547a56dc37c40bfeaacc4ee179a4af0bdaa84368351

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b764da70efbc4e4978488d1320a0333be606d45478a936797b862eb3c8973940
MD5 31f3b04d88b5a2edb9c3bdae9e8fe855
BLAKE2b-256 9d8dadcd733417c36ada126d064e658f7b786cf787cca4a34e01f66666898b13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.3-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 0fdc4e21de6daac0d4e5494cf353cbf7ca9aff0cbfefb595ea749a57c72fa121
MD5 73b98f376b02bcd501cd32cfb19edb09
BLAKE2b-256 f03a7b4999503c70dfdd0f6fee966532e1d45a267dd4588b447e594a4df9c993

See more details on using hashes here.

Provenance

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