Skip to main content

Python bindings for laddu

Reason this release was yanked:

accidental .so file in release (python)

Project description

Amplitude analysis made short and sweet

GitHub Release GitHub last commit GitHub Actions Workflow Status GitHub License Crates.io Version docs.rs Read the Docs Codecov PyPI - Version CodSpeed Badge

laddu (/ˈlʌduː/) is a library for analysis of particle physics data. It is intended to be a simple and efficient alternative to some of the other tools out there. laddu is written in Rust with bindings to Python via PyO3 and maturin and is the spiritual successor to rustitude, one of my first Rust projects. The goal of this project is to allow users to perform complex amplitude analyses (like partial-wave analyses) without complex code or configuration files.

[!CAUTION] This crate is still in an early development phase, and the API is not stable. It can (and likely will) be subject to breaking changes before the 1.0.0 version release (and hopefully not many after that).

Table of Contents

Key Features

  • A simple interface focused on combining Amplitudes into models which can be evaluated over Datasets.
  • A single Amplitude trait which makes it easy to write new amplitudes and integrate them into the library.
  • Easy interfaces to precompute and cache values before the main calculation to speed up model evaluations.
  • Efficient parallelism using rayon.
  • Python bindings to allow users to write quick, easy-to-read code that just works.

API note: The low-level event container is now named EventData. The metadata-aware view returned by Dataset::named_event is called Event and exposes the same kinematic helpers while enabling name-based lookups. Python bindings continue to expose this view as laddu.Event.

Installation

laddu can be added to a Rust project with cargo:

cargo add laddu

The library's Python bindings are located in a library by the same name, which can be installed simply with your favorite Python package manager:

pip install laddu

Quick Start

Rust

Writing a New Amplitude

While it is probably easier for most users to skip to the Python section, there is currently no way to implement a new amplitude directly from Python. At the time of writing, Rust is not a common language used by particle physics, but this tutorial should hopefully convince the reader that they don't have to know the intricacies of Rust to write performant amplitudes. As an example, here is how one might write a Breit-Wigner, parameterized as follows:

I_{\ell}(m; m_0, \Gamma_0, m_1, m_2) =  \frac{1}{\pi}\frac{m_0 \Gamma_0 B_{\ell}(m, m_1, m_2)}{(m_0^2 - m^2) - \imath m_0 \Gamma}

where

\Gamma = \Gamma_0 \frac{m_0}{m} \frac{q(m, m_1, m_2)}{q(m_0, m_1, m_2)} \left(\frac{B_{\ell}(m, m_1, m_2)}{B_{\ell}(m_0, m_1, m_2)}\right)^2

is the relativistic width correction, $q(m_a, m_b, m_c)$ is the breakup momentum of a particle with mass $m_a$ decaying into two particles with masses $m_b$ and $m_c$, $B_{\ell}(m_a, m_b, m_c)$ is the Blatt-Weisskopf barrier factor for the same decay assuming particle $a$ has angular momentum $\ell$, $m_0$ is the mass of the resonance, $\Gamma_0$ is the nominal width of the resonance, $m_1$ and $m_2$ are the masses of the decay products, and $m$ is the "input" mass.

Although this particular amplitude is already included in laddu, let's assume it isn't and imagine how we would write it from scratch:

use laddu::{
   AmplitudeID, Cache, DatasetMetadata, EventData, Expression, LadduError, LadduResult, Mass,
   ParameterID, ParameterLike, Parameters, Resources, PI,
};
use laddu::traits::*;
use laddu::utils::functions::{blatt_weisskopf, breakup_momentum};
use laddu::{Deserialize, Serialize, typetag};
use num::complex::Complex64;

#[derive(Clone, Serialize, Deserialize)]
pub struct MyBreitWigner {
    name: String,
    mass: ParameterLike,
    width: ParameterLike,
    pid_mass: ParameterID,
    pid_width: ParameterID,
    l: usize,
    daughter_1_mass: Mass,
    daughter_2_mass: Mass,
    resonance_mass: Mass,
}
impl MyBreitWigner {
    pub fn new(
        name: &str,
        mass: ParameterLike,
        width: ParameterLike,
        l: usize,
        daughter_1_mass: &Mass,
        daughter_2_mass: &Mass,
        resonance_mass: &Mass,
    ) -> LadduResult<Expression> {
        Self {
            name: name.to_string(),
            mass,
            width,
            pid_mass: ParameterID::default(),
            pid_width: ParameterID::default(),
            l,
            daughter_1_mass: daughter_1_mass.clone(),
            daughter_2_mass: daughter_2_mass.clone(),
            resonance_mass: resonance_mass.clone(),
        }
        .into_expression()
    }
}

#[typetag::serde]
impl Amplitude for MyBreitWigner {
    fn register(&mut self, resources: &mut Resources) -> LadduResult<AmplitudeID> {
        self.pid_mass = resources.register_parameter(&self.mass)?;
        self.pid_width = resources.register_parameter(&self.width)?;
        resources.register_amplitude(&self.name)
    }

    fn bind(
        &mut self,
        metadata: &DatasetMetadata,
    ) -> LadduResult<()> {
        self.daughter_1_mass.bind(metadata)?;
        self.daughter_2_mass.bind(metadata)?;
        self.resonance_mass.bind(metadata)?;
        Ok(())
    }

    fn compute(&self, parameters: &Parameters, event: &EventData, _cache: &Cache) -> Complex64 {
        let mass = self.resonance_mass.value(event);
        let mass0 = parameters.get(self.pid_mass);
        let width0 = parameters.get(self.pid_width);
        let mass1 = self.daughter_1_mass.value(event);
        let mass2 = self.daughter_2_mass.value(event);
        let q0 = breakup_momentum(mass0, mass1, mass2);
        let q = breakup_momentum(mass, mass1, mass2);
        let f0 = blatt_weisskopf(mass0, mass1, mass2, self.l);
        let f = blatt_weisskopf(mass, mass1, mass2, self.l);
        let width = width0 * (mass0 / mass) * (q / q0) * (f / f0).powi(2);
        let n = (mass0 * width0 / PI).sqrt();
        let d = Complex64::new(mass0.powi(2) - mass.powi(2), -(mass0 * width));
        Complex64::from(f * n) / d
    }
}

Calculating a Likelihood

We could then write some code to use this amplitude. For demonstration purposes, let's just calculate an extended unbinned negative log-likelihood, assuming we have some data and Monte Carlo in the proper parquet format:

use laddu::{Scalar, Dataset, DatasetReadOptions, Mass, NLL, parameter};
let p4_names = ["beam", "proton", "kshort1", "kshort2"];
let aux_names = ["pol_magnitude", "pol_angle"];
let options = DatasetReadOptions::default()
    .p4_names(p4_names)
    .aux_names(aux_names)
    .alias("resonance", ["kshort1", "kshort2"]);
let ds_data = Dataset::from_parquet("test_data/data.parquet", &options).unwrap();
let ds_mc = Dataset::from_parquet("test_data/mc.parquet", &options).unwrap();

let resonance_mass = Mass::new(["kshort1", "kshort2"]);
let p1_mass = Mass::new(["kshort1"]);
let p2_mass = Mass::new(["kshort2"]);
let bw = MyBreitWigner::new(
    "bw",
    parameter("mass"),
    parameter("width"),
    2,
    &p1_mass,
    &p2_mass,
    &resonance_mass,
).unwrap();
let mag = Scalar::new("mag", parameter("magnitude")).unwrap();
let expr = (mag * bw).norm_sqr();

let nll = NLL::new(&expr, &ds_data, &ds_mc).unwrap();
println!("Parameters names and order: {:?}", nll.parameters());
let result = nll.evaluate(&[1.27, 0.120, 100.0]);
println!("The extended negative log-likelihood is {}", result);

In practice, amplitudes can also be added together, their real and imaginary parts can be taken, and evaluators should mostly take the real part of whatever complex value comes out of the model.

Python

Fitting Data

While we cannot (yet) implement new amplitudes within the Python interface alone, it does contain all the functionality required to analyze data. Here's an example to show some of the syntax. This models includes three partial waves described by the $Z_{\ell}^m$ amplitude listed in Equation (D13) here[^1]. Since we take the squared norm of each individual sum, they are invariant up to a total phase, thus the S-wave was arbitrarily picked to be purely real.

import laddu as ld
import matplotlib.pyplot as plt
import numpy as np
from laddu import constant, parameter

def main():
    p4_columns = ['beam', 'proton', 'kshort1', 'kshort2']
    aux_columns = ['pol_magnitude', 'pol_angle']
    ds_data = ld.Dataset.from_parquet('path/to/data.parquet', p4s=p4_columns, aux=aux_columns)
    ds_mc = ld.Dataset.from_parquet('path/to/accmc.parquet', p4s=p4_columns, aux=aux_columns)
    topology = ld.Topology.missing_k2('beam', ['kshort1', 'kshort2'], 'proton')
    angles = ld.Angles(topology, 'kshort1', 'Helicity')
    polarization = ld.Polarization(topology, 'pol_magnitude', 'pol_angle')

    z00p = ld.Zlm("z00p", 0, 0, "+", angles, polarization)
    z00n = ld.Zlm("z00n", 0, 0, "-", angles, polarization)
    z22p = ld.Zlm("z22p", 2, 2, "+", angles, polarization)

    s0p = ld.Scalar("s0p", parameter("s0p"))
    s0n = ld.Scalar("s0n", parameter("s0n"))
    d2p = ld.ComplexScalar("d2p", parameter("d2 re"), parameter("d2 im"))

    pos_re = (s0p * z00p.real() + d2p * z22p.real()).norm_sqr()
    pos_im = (s0p * z00p.imag() + d2p * z22p.imag()).norm_sqr()
    neg_re = (s0n * z00n.real()).norm_sqr()
    neg_im = (s0n * z00n.imag()).norm_sqr()
    expr = pos_re + pos_im + neg_re + neg_im

    nll = ld.NLL(expr, ds_data, ds_mc)
    status = nll.minimize([1.0] * len(nll.parameters))
    print(status)
    fit_weights = nll.project(status.x)
    s0p_weights = nll.project_with(status.x, ["z00p", "s0p"])
    s0n_weights = nll.project_with(status.x, ["z00n", "s0n"])
    d2p_weights = nll.project_with(status.x, ["z22p", "d2p"])
    masses_mc = res_mass.value_on(ds_mc)
    masses_data = res_mass.value_on(ds_data)
    weights_data = ds_data.weights
    plt.hist(masses_data, weights=weights_data, bins=80, range=(1.0, 2.0), label="Data", histtype="step")
    plt.hist(masses_mc, weights=fit_weights, bins=80, range=(1.0, 2.0), label="Fit", histtype="step")
    plt.hist(masses_mc, weights=s0p_weights, bins=80, range=(1.0, 2.0), label="$S_0^+$", histtype="step")
    plt.hist(masses_mc, weights=s0n_weights, bins=80, range=(1.0, 2.0), label="$S_0^-$", histtype="step")
    plt.hist(masses_mc, weights=d2p_weights, bins=80, range=(1.0, 2.0), label="$D_2^+$", histtype="step")
    plt.legend()
    plt.savefig("demo.svg")


if __name__ == "__main__":
    main()

This example would probably make the most sense for a binned fit, since there isn't actually any mass dependence in any of these amplitudes (so it will just plot the relative amount of each wave over the entire dataset).

Other Examples

You can find other Python examples in the py-laddu/examples folder. These scripts have inline script metadata (PEP 723) which allows them to be run with uv run (which will automatically install the necessary dependencies).

Example 1

The first example script uses data generated with gen_amp. These data consist of a data file with two resonances, an $f_0(1500)$ modeled as a Breit-Wigner with a mass of $1506\text{ MeV}/c^2$ and a width of $112\text{ MeV}/c^2$ and an $f_2'(1525)$, also modeled as a Breit-Wigner, with a mass of $1517\text{ MeV}/c^2$ and a width of $86\text{ MeV}/c^2$, as per the PDG. These were generated to decay to pairs of $K_S^0$s and are produced via photoproduction off a proton target (as in the GlueX experiment). The beam photon is polarized with an angle of $0$ degrees relative to the production plane and a polarization magnitude of $0.3519$ (out of unity). The configuration file used to generate the corresponding data and Monte Carlo files can also be found in the python_examples, and the datasets contain $100,000$ data events and $1,000,000$ Monte Carlo events (generated with the -f argument to create a Monte Carlo file without resonances). The result of this fit can be seen in the following image (using the default 50 bins):

Additionally, this example has an optional MCMC analysis complete with a custom observer to monitor convergence based on the integrated autocorrelation time. This can be run using example_1_mcmc.py script after example_1.py has completed, as it uses data stored during the execution of example_1.py to initialize the walkers. A word of warning, this analysis takes a long time, but is meant more as a demonstration of what's possible with the current system. The custom autocorrelation observer plays an important role in choosing convergence criteria, since this problem has an implicit symmetry (the absolute phase between the two waves matters, but the sign is ambiguous) which cause the posterior distributions to sometimes be multimodal, which can lead to long IATs. Instead, the custom implementation projects the walkers' positions onto the two waves and uses those projections as a proxy to the real chain. This proxy is unimodal by definition, so the IATs calculated from it are much smaller and more realistically describe convergence.

Some example plots can be seen below for the first data bin:

Example 2

The second example uses linear algebra to calculate unpolarized and polarized moments $H(\ell, m)$ from the same data used in the first example. While the results are not as informative, it is a good demonstration of how laddu can also be used outside of the context of a maximum likelihood fit. The mechanism for obtaining moments could also be written with numpy and scipy alone, but laddu's data format, variables, and amplitude evaluation make it easy to write the same code in a very straightforward way which will efficiently run in parallel or even over an MPI instance.

A moment analysis is similar to a partial-wave analysis, except the target observables are coefficients attached to spherical harmonics in a standard sum rather than a coherent sum. This makes it difficult to extract these observables from a maximum likelihood fit, since the corresponding intensity function may be negative for some parameter values, making the logarithm of that intensity undefined. However, similar to a discrete Fourier transform, a moment analysis can be performed by simply summing the spherical harmonic evaluated on each event, and this is what the example does. However, there are two additional considerations. First, since the example data contains a polarized photon beam, we can extract polarized moments which span a basis of not only spherical harmonics of decay angles, but also sine and cosine functions of the polarization angle. Second, we have a Monte Carlo dataset which models the detector efficiency, so we have to construct a matrix of normalization integrals (similar to what we do in an extended maximum likelihood fit). Any non-unitary acceptance function will cause mixing between all of the moments, so we invert the normalization integral matrix and use the matrix-vector product to transform measured moments into the true physical moments.

The resulting unpolarized moments are shown below:

Data Format

laddu focuses on a column layout rather than a specific file container. Each particle is represented by four floating-point columns (_px, _py, _pz, _e), auxiliary scalars keep their explicit names (e.g. pol_magnitude), and an optional weight column stores per-event weights. As long as those columns exist, the physical storage format may vary. Today, Parquet is the preferred container because it is small, language-agnostic, and easy to stream, but the Rust core can also read ROOT TTrees via oxyroot, and the Python bindings add an AmpTools-aware backend on top of uproot. When the weight column is omitted, both the Rust and Python loaders fill it with ones so that unweighted samples continue to work without any extra preprocessing.

For example, the following columns describe a dataset with four particles, the first of which is a polarized photon beam as in the GlueX experiment:

Column name Data Type Interpretation
beam_px Float32 or Float64 Beam momentum (x-component)
beam_py Float32 or Float64 Beam momentum (y-component)
beam_pz Float32 or Float64 Beam momentum (z-component)
beam_e Float32 or Float64 Beam energy
pol_magnitude Float32 or Float64 Beam polarization magnitude
pol_angle Float32 or Float64 Beam polarization angle
proton_px Float32 or Float64 Recoil proton momentum (x-component)
proton_py Float32 or Float64 Recoil proton momentum (y-component)
proton_pz Float32 or Float64 Recoil proton momentum (z-component)
proton_e Float32 or Float64 Recoil proton energy
kshort1_px Float32 or Float64 Decay product 1 momentum (x-component)
kshort1_py Float32 or Float64 Decay product 1 momentum (y-component)
kshort1_pz Float32 or Float64 Decay product 1 momentum (z-component)
kshort1_e Float32 or Float64 Decay product 1 energy
kshort2_px Float32 or Float64 Decay product 2 momentum (x-component)
kshort2_py Float32 or Float64 Decay product 2 momentum (y-component)
kshort2_pz Float32 or Float64 Decay product 2 momentum (z-component)
kshort2_e Float32 or Float64 Decay product 2 energy
weight Float32 or Float64 Event weight

AmpTools-format ROOT files can be directly read as Dataset objects (this is currently implemented in the Python bindings; the Rust API still targets Parquet/standard ROOT TTrees):

from laddu import Dataset

dataset = Dataset.from_amptools(
    'example_amp.root',
    pol_in_beam=True,
)

This loads the ROOT tree, infers the particle names, and exposes the result through the same Dataset interface used for Parquet inputs.

MPI Support

The latest version of laddu supports the Message Passing Interface (MPI) protocol for distributed computing. MPI-compatible versions of the core laddu methods have been written behind the mpi feature gate. To build laddu with MPI compatibility, it can be added with the mpi feature via cargo add laddu --features mpi. Note that this requires a working MPI installation, and OpenMPI or MPICH are recommended, as well as LLVM/Clang. The installation of these packages differs by system, but are generally available via each system's package manager. The Python implementation of laddu contains a library laddu-cpu and may be optionally installed with a dependency laddu-mpi. If the latter is available, it will be used at runtime unless otherwise specified. Note that this just selects the backend, and doesn't actually use MPI at all, it just gives the option to use it. You can install the optional dependency automatically with pip install 'laddu[mpi]'.

To use MPI in Rust, one must simply surround their main analysis code with a call to laddu::mpi::use_mpi(true) and laddu::mpi::finalize_mpi(). The first method has a boolean flag which allows for runtime switching of MPI use (for example, disabling MPI with an environment variable). These same methods exist in Python as laddu.mpi.use_mpi(trigger=true) and laddu.mpi.finalize_mpi(), and an additional context manager, laddu.mpi.MPI(trigger=true), can be used to quickly wrap a main() function. See the documentation for more details.

Future Plans

  • GPU integration (this is incredibly difficult to do right now, but it's something I'm looking into).
  • As always, more tests and documentation.

Alternatives

While this is likely the first Rust project (aside from my previous attempt, rustitude), there are several other amplitude analysis programs out there at time of writing. This library is a rewrite of rustitude which was written when I was just learning Rust and didn't have a firm grasp of a lot of the core concepts that are required to make the analysis pipeline memory- and CPU-efficient. In particular, rustitude worked well, but ate up a ton of memory and did not handle precalculation as nicely.

AmpTools

The main inspiration for this project is the library most of my collaboration uses, AmpTools. AmpTools has several advantages over laddu: it's probably faster for almost every use case, but this is mainly because it is fully integrated with MPI and GPU support. I'm not actually sure if there's a fair benchmark between the two libraries, but I'd wager AmpTools would still win. AmpTools is a much older, more developed project, dating back to 2010. However, it does have its disadvantages. First and foremost, the primary interaction with the library is through configuration files which are not really code and sort of represent a domain specific language. As such, there isn't really a way to check if a particular config will work before running it. Users could technically code up their analyses in C++ as well, but I think this would generally be more work for very little benefit. AmpTools primarily interacts with Minuit, so there aren't simple ways to perform alternative optimization algorithms, and the outputs are a file which must also be parsed by code written by the user. This usually means some boilerplate setup for each analysis, a slew of input and output files, and, since it doesn't ship with any amplitudes, integration with other libraries. The data format is also very rigid, to the point where including beam polarization information feels hacked on (see the Zlm implementation here which requires the event-by-event polarization to be stored in the beam's four-momentum). While there isn't an official Python interface, Lawrence Ng has made some progress porting the code here.

PyPWA

PyPWA is a library written in pure Python. While this might seem like an issue for performance (and it sort of is), the library has several features which encourage the use of JIT compilers. The upside is that analyses can be quickly prototyped and run with very few dependencies, it can even run on GPUs and use multiprocessing. The downside is that recent development has been slow and the actual implementation of common amplitudes is, in my opinion, messy. I don't think that's a reason to not use it, but it does make it difficult for new users to get started.

ComPWA

ComPWA is a newcomer to the field. It's also a pure Python implementation and is comprised of three separate libraries. QRules can be used to validate and generate particle reaction topologies using conservation rules. AmpForm uses SymPy to transform these topologies into mathematical expressions, and it can also simplify the mathematical forms through the built-in CAS of SymPy. Finally, TensorWaves connects AmpForm to various fitting methods. In general, these libraries have tons of neat features, are well-documented, and are really quite nice to use. I would like to eventually see laddu as a companion to ComPWA (rather than direct competition), but I don't really know enough about the libraries to say much more than that.

Others

It could be the case that I am leaving out software with which I am not familiar. If so, I'd love to include it here for reference. I don't think that laddu will ever be the end-all-be-all of amplitude analysis, just an alternative that might improve on existing systems. It is important for physicists to be aware of these alternatives. For example, if you really don't want to learn Rust but need to implement an amplitude which isn't already included here, laddu isn't for you, and one of these alternatives might be best.

[^1]: Mathieu, V., Albaladejo, M., Fernández-Ramírez, C., Jackura, A. W., Mikhasenko, M., Pilloni, A., & Szczepaniak, A. P. (2019). Moments of angular distribution and beam asymmetries in $\eta\pi^0$ photoproduction at GlueX. Physical Review D, 100(5). doi:10.1103/physrevd.100.054017

Project details


Download files

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

Source Distribution

laddu_cpu-0.12.0.tar.gz (724.1 kB view details)

Uploaded Source

Built Distributions

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

laddu_cpu-0.12.0-cp313-cp313t-win_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13tWindows ARM64

laddu_cpu-0.12.0-cp313-cp313t-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.13tWindows x86-64

laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_i686.whl (8.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_armv7l.whl (7.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl (7.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (8.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (8.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

laddu_cpu-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

laddu_cpu-0.12.0-cp313-cp313t-macosx_10_12_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

laddu_cpu-0.12.0-cp37-abi3-win_arm64.whl (7.3 MB view details)

Uploaded CPython 3.7+Windows ARM64

laddu_cpu-0.12.0-cp37-abi3-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.7+Windows x86-64

laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ x86-64

laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_i686.whl (8.3 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ i686

laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_armv7l.whl (7.7 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ ARMv7l

laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ ARM64

laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (8.1 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ s390x

laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (8.5 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ i686

laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.5 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARMv7l

laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARM64

laddu_cpu-0.12.0-cp37-abi3-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

laddu_cpu-0.12.0-cp37-abi3-macosx_10_12_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.7+macOS 10.12+ x86-64

File details

Details for the file laddu_cpu-0.12.0.tar.gz.

File metadata

  • Download URL: laddu_cpu-0.12.0.tar.gz
  • Upload date:
  • Size: 724.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0.tar.gz
Algorithm Hash digest
SHA256 83e1342cbe05ef90007e7506755c2f09061f05e94ca1d4348fe472eead57f479
MD5 508f409bf8d77c0f4c49ed38ee51db64
BLAKE2b-256 cf463796a682d1a7f4920e96b97a1b30a214828790003018d94d10b71336c764

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-win_arm64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-win_arm64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.13t, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 79fb5503bb5e994d40989b34d20e94258bac3e121b31fb94084ebd678fdf64d3
MD5 6bc02fa7bedbc5c4d371de41ffdc1e02
BLAKE2b-256 6a53bd57d9ac0a0baf567f764ce70b5f88e1d3d8091fa875d00740ddd9c7651a

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 abb72d879bb246cb63bf6f12aa3d8f819d6b279eafde91ff62bb1e0009ee0f32
MD5 f1b0640e53c13c60131a412fc44eec0e
BLAKE2b-256 207e98d3428260b2d3f99ac47c14ef16b593220cec74cc83d666acb3de7516cc

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 310c83c5c54cfbca37c3e1ff49b50a7e354013e8919bc7b28c806441c3575c3e
MD5 e8ec4ed8914323497d9dc577fa508b02
BLAKE2b-256 c69ba81944bd40e657a2d1ebd07a255e12d62b2a4e7a78921e31b7cfc279939d

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 888ee02bd37371b955d4ef57bd9ead01efb919b2281679b4408c5ad6dba967d7
MD5 378bad6ce2f6597eb58db07f63e81162
BLAKE2b-256 faa2750ec276dd9dbef0fdebb713d67d953ec49d5376dd42b62260262229fe93

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f464f1301367bafc484bbc376d3df66de0d5af2c66b7685b1b781290cd739d88
MD5 d4d640dfffd6aebc3c98dff81650d22e
BLAKE2b-256 c90d7a86091e91898f92a77bda905cc3e1c4673eea0e712b075ca0adae99e49a

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1b97e9bf1d45a23abb6f160a0afaae4f04dab7960b4bf8f34e38816a25bd1460
MD5 9e63c647ef6662367c81dad9bdac3162
BLAKE2b-256 0bbd5512002f56e7d7627b026b10e69ee99b706600be3b7583afc5ba90e425db

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be4ff82ed1598973f8fa13ac419fff7b384294fc56c2cc2137322d5f9d48a7e0
MD5 cde9dc45e25d0d2db26d8b08ad3881a2
BLAKE2b-256 49166511ff00de58ab66537d98097e0a76ff9bb374369de9789581f4e1d89257

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 22d4fdcdc5cbf2226f357436e9085ce265bcd607b1540ffbed936a46880763e1
MD5 3455e556bf322c07eac6f90faa832acc
BLAKE2b-256 40fed147aa2ddf04cc0c6b69c9aac9a12020859de354e3446334c94ce98c4946

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5a963b9e5da6600a989e0794881c162bc4ef01cadec8811c6f726ad72b7a1219
MD5 2fade95d70a2bbacacaf4d8031b76fb4
BLAKE2b-256 1a4f5849dff5f2db50fd4cbfb5c02bd9147966c8da59004704729e9464003781

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 7.5 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c58d18cd2b2611c6edc7c917418841ebb33959b2678b2452f0c5343b6b74e512
MD5 207d87e58a4d7304f6ec2666c0242824
BLAKE2b-256 dadee91bef08d0fcd06956a025d8fc6e85256348e45ddc2e81be8066a5d7e635

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7366c362cbd4c6b72a2f8f529ec107b741eae0c36db828313dd74e0a1b90ae68
MD5 8b344baebcea6924c41c314ec62c4f7b
BLAKE2b-256 995784c2adb54d3b1344d667472706eefcb60720b2a0ef12aa1194eee7ea0d78

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.13t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 118989cd1fc3ce21681c9873babd4907f74d59c9dbd4069261156ffa9e36311f
MD5 70b44e8918517d23427253a6f6875acb
BLAKE2b-256 4390a5164555c2d944b7b7fdf0ce9eb24c94ae297fa930389b9c79bb313a4a8e

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp313-cp313t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.13t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3c4c348c61e7ed61991e5d27199ab3fab3a9e84ed974551d14a835353dea7f8d
MD5 ab1f49369330d21c63808dd01916484b
BLAKE2b-256 c2c9ca063118d1744f6b0305bc93b8f52d326fee6d114ff665f82a5582d88271

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-win_arm64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-win_arm64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.7+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 28ded1f3d0c3c09bfa5d4b6c9ef5da455cf14e835df98977ca6fe1fe03e5469c
MD5 12f596fd3453249e05b6db2f525ed8cb
BLAKE2b-256 61d6c075477d64e9221e895e2b0384881f5f6658770791f8a51001392b2a528c

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7a44e42e58ab3b731ac9c36a638344aa5baaf8499e2f5c38b17c636c51f1d1dd
MD5 3559d4b2edd65e178c6b8ce3b8fccccd
BLAKE2b-256 6697839efa6a43f31b39d9ae70a60ee0ea9f83a7b0d3d71d10942af7ed72a9b5

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.7+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e8017ab5d190e58f1c25288b86d2a3b1acfa72e403dc70b21c57c0e0a9b619c
MD5 7566c98deaf73f71218894f6afaa6812
BLAKE2b-256 f7ac8633b80ee476e7a243173e9ffaea07a700fba2d445da40aabd274fb9ae70

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_i686.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.7+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 266ec38238b04d8147d1bf34db16da787533f93fc7488cb6482b4107115d7ef9
MD5 5fa8280f6dc345164f1d16b21df95508
BLAKE2b-256 94b49751ae9f3601b4e85b21d4adfc29693e9e33f4984068a4f97cf4fcca17f1

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.7+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 237d67987a7aed5e50523f94e70483db14b43e5ba7af05b6cf469bcf10c18478
MD5 7d1f771df1178b80cebab851ff7fd92e
BLAKE2b-256 9ed360538be24345c22fe3f3a6b6c9677a980052b6360155ff8317461496b91b

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: CPython 3.7+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 52dd1b18acf1d46bc823fd89b113806d80851b5d7e3495177600ba7eeb6c6142
MD5 af4885c552ccccbf4ceebf4049a6d292
BLAKE2b-256 618d243e785987c2f58f2a5666921d518cbb4db645a4ceec2b86274e1c70b949

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a583ec07669ad76e574eb4349422ec709e742ab812d4e1bb9ccca0feae241c41
MD5 bc19b42b5a8f847a40fb13567881bc54
BLAKE2b-256 cca5b74330bdf8f98a355f284f508865bbf8027bfde9c1f28b964a96cc4a7787

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 99121116af51cecd1ea008c6d7c85c8d9405296285344bc5c14129002f707360
MD5 eca2484026f596a33377e354c7074c52
BLAKE2b-256 50ce7ba4ba1bc86183e6a7db30f135b2f416eb83d420f9b59bea1af0f9be1d74

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0bc03865506f355d99c6b9db4be8045162eeac562298e219a5e97a55b65f4e3c
MD5 0e0d3fcc70f7e271c90eee4959d84996
BLAKE2b-256 d8671482fd486cfed55acdeda633163cb90953c7249e52d86e348b614961aaaf

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 7.5 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 973ab65424f7a096eb063939e123f9e3becd76f5a3f2c18e68bf891c916a1f1a
MD5 3a16b44c83c69df404fd287c5b7d452d
BLAKE2b-256 b48bc794a92f40c5210da411873f8cfe227a8b3a534967090aba0ff4ef97e92b

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.7+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca084930b0d460eb5fb0fa4463112e5284094252a4099007848a57b65688a9d8
MD5 2851eb123b73ae8f6785c1a0fcc71b3a
BLAKE2b-256 b85592c70c63288c0c0fb49aed268a6e3a7fbc4004caca0b784d31a6417bbafe

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: CPython 3.7+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33612d389ff7489c21bd56d9e8d8b36c93fb724ff06b7ccabfb05856746602b1
MD5 65d7e78a413a3106667c4a487ddb4a0c
BLAKE2b-256 73a293d1e707be92ee11e76b2f20aa1d28921e0e44c41d8231bef6446e0f57c5

See more details on using hashes here.

File details

Details for the file laddu_cpu-0.12.0-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: laddu_cpu-0.12.0-cp37-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.7+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for laddu_cpu-0.12.0-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e5333036c5310827b96a0b7f7f26512acc1e826d9dfa6781ebffacd86d84777c
MD5 5e1ddf45bb3a1fe72400465b87920dfa
BLAKE2b-256 9b126227b71b7eae41f2cc53449f9ba38b1ef01b3ea4569441b58b948199ea2f

See more details on using hashes here.

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