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.2.tar.gz (7.4 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.2-cp314-cp314-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.14Windows x86-64

tract-0.23.2-cp314-cp314-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp314-cp314-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tract-0.23.2-cp314-cp314-macosx_10_15_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

tract-0.23.2-cp314-cp314-macosx_10_15_universal2.whl (19.7 MB view details)

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

tract-0.23.2-cp313-cp313-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.13Windows x86-64

tract-0.23.2-cp313-cp313-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tract-0.23.2-cp313-cp313-macosx_10_13_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tract-0.23.2-cp313-cp313-macosx_10_13_universal2.whl (19.7 MB view details)

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

tract-0.23.2-cp312-cp312-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.12Windows x86-64

tract-0.23.2-cp312-cp312-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tract-0.23.2-cp312-cp312-macosx_10_13_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tract-0.23.2-cp312-cp312-macosx_10_13_universal2.whl (19.7 MB view details)

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

tract-0.23.2-cp311-cp311-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.11Windows x86-64

tract-0.23.2-cp311-cp311-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tract-0.23.2-cp311-cp311-macosx_10_13_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

tract-0.23.2-cp311-cp311-macosx_10_13_universal2.whl (19.7 MB view details)

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

tract-0.23.2-cp310-cp310-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.10Windows x86-64

tract-0.23.2-cp310-cp310-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp310-cp310-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tract-0.23.2-cp310-cp310-macosx_10_13_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

tract-0.23.2-cp310-cp310-macosx_10_13_universal2.whl (19.7 MB view details)

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

tract-0.23.2-cp39-cp39-win_amd64.whl (10.6 MB view details)

Uploaded CPython 3.9Windows x86-64

tract-0.23.2-cp39-cp39-musllinux_1_2_x86_64.whl (11.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

tract-0.23.2-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.2-cp39-cp39-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tract-0.23.2-cp39-cp39-macosx_10_13_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

tract-0.23.2-cp39-cp39-macosx_10_13_universal2.whl (19.7 MB view details)

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

File details

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

File metadata

  • Download URL: tract-0.23.2.tar.gz
  • Upload date:
  • Size: 7.4 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.2.tar.gz
Algorithm Hash digest
SHA256 4a8ca54b31a63f3b5e247d44f89029ce910c36ba77114c961490a389d1f7ab8f
MD5 2e8253d069cd60b180b63d08d58dacbe
BLAKE2b-256 e3542f697dd1747130a99f9347c60da70d854fcfa08bb9cb6973661a4adec5c2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 890f0ace3b51a52ba844f950a7586fa4c99c67b1e71b8576572cbffa7ebb48ca
MD5 d0a7e28e0458ccabe5b7a1a80b8d4cbb
BLAKE2b-256 f90da375c7f0551c826bbc2433d976aba5648fe5015d95fa3e58568e61494736

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c37c40bb21b6a2f00a87fb597c4ff0506bdd1dd95710675fb647b3d227cbb78f
MD5 12e23b9901e66303866bac3f8a33bd39
BLAKE2b-256 26cbe6e1de70cd7e0d3add5f93c8444a85bcdad2805174bf1758c696da963c7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f15dbf80d1c7e8bd423758e645e6dcb514bad684af8bbc1006ba7247fb509da
MD5 6f7458dd9ce441441084b03760c3966e
BLAKE2b-256 3cc94e52c257e9a40925e8a5eccb0cba62d68c3e344014c029cc46453cae253a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42adce25801f9cf7195c492e7af0ed998a40ec47a9500acda10655f99454fc32
MD5 4685334c8f03d5106adc66f7acc1ef29
BLAKE2b-256 5eea29d7b650b0d6484cccf05573d6ab147e6dd6c5435c22647ac87ae2b88e3c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3f4449cb7b098898d87fb22919bfc69cad19490cfd75778f0b42e952259f8fe0
MD5 4db873762ad48ba45493012009bc4f4a
BLAKE2b-256 3a7e9c2407551e77ec076122c8b7e7ab170d587adb562ffd2145645284d955e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 5b6001cc69b897ace1feeddc2058bbaf410f1c3e1078049f19e8910eaa6e8ada
MD5 fca9a3cde5a20e0cc36cd587a9c245ea
BLAKE2b-256 4b90fdd50cb32e73d4afae72e016b630031d9b6a180d7ae1c01b692e7997cf14

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5f3e79786ee0a062f72e27e343380e3b455b095363f8b5a9b5a0295bd2c9486c
MD5 8d78b3915c48ccf2f8a84010141347c2
BLAKE2b-256 6e008c244c9a7b43557a36d1e2a3d9c54bcc9c3acb1dad557a324b3b0f275e41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a37e6216001281d6c36da5b8891ec940f8980647ed2d36c4d71b830c9a947166
MD5 a2fe90b5c16645d9fb90cb971605568a
BLAKE2b-256 db8fd6a01555f546948721b69d9ad1f166547d80b8482272062e3e4938db57bc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ddf1694916a2d8c2a5fabd13be051db22405047240eee09b8df6a0c1d2cf8683
MD5 99238db5de5fab2c31c8c876e2fef444
BLAKE2b-256 a5820c452198b7d7a4b2a3e2a00694a8f52447a6406fccc0a28b7b8807727b71

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6094f3c33079057582203ba248a47376e2c0a4e27f3f88aa20df66bc85269e8d
MD5 d6e2094e8a201ea9b2c61f35f68480eb
BLAKE2b-256 b84d33a0f1da660a762fea49aecb63828403eda211ede15898584968ff2cc410

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 441a2e517e8a215c551c4601076f3901f3c032b7c7fc6c8e1d9a4f31f5234a0f
MD5 dcfe945798aecadbe964c005fcc71241
BLAKE2b-256 d0ac1f2a869983270fec8dc358dd3eaaf482e0ae378f68227cb4476ab397fe7d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 6ac182bee469a27f2c20c40bed31e30712c55ec97ec50923394ca8844d995c66
MD5 bbe1d6a1cf38704c4cf18495a66f97ff
BLAKE2b-256 158d77f4baf29dd5179657a9123bc9d5b0f465f2aa1fa192e41c6f5f6b7090be

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a4966663d65c4792ee498204123070ec8c20f764888884af7d59c91154fe56ce
MD5 9ffd5f2b817100d287f7ec4c02238e1c
BLAKE2b-256 9feaebce4a4f282200a2e9329348ec0456577a55e339f27167a45f7be4c52fd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6666ecbe207988a3023109758d697c69804702afb078cd4578f3d50d5f344d13
MD5 96cae3b059dbf9b39173480d414087eb
BLAKE2b-256 41d88fd10b28628468e40ec891d26b72cc031383a9390cd558172583926c1f2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 479e30f03055a2ae5bda5d754a683bbd35750addec29c38375f159e459bbafc6
MD5 63176808d90d8be81b761c278114b766
BLAKE2b-256 461f01d23b6f85d80c89eaacfbabf24e71f92639053771e802977c4f71ab2cc2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4469361a0a7323d589a619550fed3a5f2894debba2c4abf1360eb56dc00bbb7
MD5 f888e46c1ab79d7fee65206dd9f8692f
BLAKE2b-256 9b6261ab68dde5ddad32f6cf20e425f9b643e9b4c6b9fcb8a8c85c46a8b2247a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b17eac4b86a08e899623af3a34a6a2a96b65703bd8533f78b2aa9d92a9ca5d34
MD5 796ce932b5198b9623bd3f09224e7660
BLAKE2b-256 ea1ae407f34f52e298a7db389ef57c8b57988196ce537b0577c9bbd76408f53c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5ca7ae9b5b0c2e9d565995fac136a3798108a9b75f9dcc51ad12e8339041f0cf
MD5 d81c325aae95be3c06315e6274863d25
BLAKE2b-256 0024a3b4d9fa09f183c49d85e8988661d70798797f9283f013de8a13440ee9a0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1705cfae1530a2e2cda1ca2d65db03b98c3914c2ee005d0629d944a79f1557f2
MD5 fa7e3c1af22dc9976f8b18ba7b114813
BLAKE2b-256 4d6278cf0561978ce6e8a62f49a48788c74aaa17786ab99e3ad9a623deb6ce48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 15f5135a153c74ef6ec5eab5ff700cf2b22eb15a06222e110646cc65d80338c4
MD5 6d74f7c6414c38e13005c10f8f878ab9
BLAKE2b-256 0cc9fea22efaecbfc95e0dae9b1791ce9de5dc48b48aed3dd7f3db4040d002e4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ef8a63a90b773f1b5a5317c6d49ceecf2479922eda27c135087832d9e38167c
MD5 129e069a799135801c6c628495d8be06
BLAKE2b-256 ebbb8559695f69ced09f36d0214d4a47326e7fd03f2de8fc270fe7415b8258d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81a2f874f54d639515eae60005f30e3b6b33396e69c20bee94f2cae710a5ea4a
MD5 5e4e310d2976443b6b31e3d1c7f76f86
BLAKE2b-256 62e4f540e181485adc8f8b26c3bf44d783c05db1ebee541939193c9564fd52c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c8085d9e53e1532af025da6abb8b50ab0c6a8eab31d8a7d51bf5a9d30f8c6404
MD5 87b97362c252ddf5f1e2cda12ad0f4d3
BLAKE2b-256 e7fbd9f1d54abfe7a821ee3e8af6812e2e467158976b28f4b88c99360b3a6772

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b2f480c74dc28d5daa9fa3e26dfcc249d5ad91b190d08c9073387be80d8b93d4
MD5 623d081603ff42acc54ceb40e338c80b
BLAKE2b-256 c38a8947abef3239f81cb58e5471699bec9e10d525216c7c9fe1b9c50c9ccd52

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2b75c23c7656250d4ac2527b1729231b2bbaac78f1cd786ab841bb583e82ccf5
MD5 9c833255e10b2ef2f8cb04a4be250a89
BLAKE2b-256 273fde30518300045949031db5341455e3714f939d72e06f9d57e7a9390207be

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 257b46c70d06006af6c89e28804d1876d7e1c5558c12c1ee5309af1720d50006
MD5 387e131a290eafffa98eaeec3c05270b
BLAKE2b-256 5b439bce1fcb3ae45ba35d62be99cb59cf7d59b1d2795a5cfad745aaf1221ef9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d381c6f69fcfad9146d142bc1eaff3cd2fc3f299caae023a2a81dd52a6b0ab11
MD5 b30febbb40f0b636fc8e73adb8e785d7
BLAKE2b-256 15a9c7c9c94656aeeafb4ff4bc3305c98de9e1b8adf82da699352047a3607344

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15e6ce74f276e2a9aea9a6f264cfb1db58a3f0a75ba33f35129f8e1a3bae6a82
MD5 54e239a034759260da298da0c8f6dc21
BLAKE2b-256 6a2bf7e70309aef07dd5d4030b47cf41c1037d45908d018bae132bb778e38e19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 83529b6c2db9de15d58ca1fd87b5e68b552e86921db6648a178a7ce7f2fa6bd9
MD5 5c970858cf8d2460a38c897b355e7af8
BLAKE2b-256 7a8c57c7cfff1ba08b5ca7be71c6a071333866e79c492783e9c97415571f9f79

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 464da98f0411b8d2c5eb24d528e2dcd497785ae8801e7017fa7075f367629b74
MD5 482050ea19193e99730416894ccc41b0
BLAKE2b-256 49d28457237910448e83e63c2de00430d6f52b934e687b169d78c28168357848

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tract-0.23.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 10.6 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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f324f4f6283d5c29b15db99383197fbdff8529754735479add02c88d81164b54
MD5 5a23af32c4cc2e24efadd65a01e6bd2a
BLAKE2b-256 09a4a0df8603b6e394cf3765fa1aff08056bc7c57b616944b36fae5eefac9197

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 92dbb0241e3059c225468ad4335fccc03b78d6be16503e9eab7248e024ec44ea
MD5 eebf0ea71cc64e266cd2f55d5998ecba
BLAKE2b-256 ad8b9a94b40c0441b9939d84f5cf01e7476cc70bd6831065c8405a823be795a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 afc7299452d9d7eb531dd994e3a87e4bc8386280ff02656d9a97c0bf6f8b95ed
MD5 310222da61d0a91ce612457f38515d0a
BLAKE2b-256 0be19540c1944ebcbc693ff86b04b6a5698af52125e19c6ce5c71d0e18b20b18

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 149fad6ff19d333705f387318ce3b74936c17b3c2601435ea62ef778196ef9e8
MD5 d7576546ba208ef34fe739d143a84ee8
BLAKE2b-256 e774643c0ee08748c4f9a2c785bd3c087154e3467ffbdf7b8a95b2fc6c9a429d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d2d6ad3a12e710dda6473ed615b8bedd1eab974d9beb427ae8d11ac6ca8bac7d
MD5 4d85a7b6ed692ac368764fce98ad11e6
BLAKE2b-256 c2618a93e36100516d217ad653f807ebe2b71f627f0351adfea39d278e7e5a63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tract-0.23.2-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 963a1f1cda282952f0e590fa289b2ca0fcf5cb575ae2622adcfb90891d93d8ee
MD5 86cd9399977b0d1e33e3cf4d2faec6a3
BLAKE2b-256 1c67ed16d05469f9c649597385260742b8d31502e4f21de232ee38bf9c89ffb5

See more details on using hashes here.

Provenance

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