Skip to main content

Python bindings for laddu

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.11.0.tar.gz (723.5 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.11.0-cp313-cp313t-win_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13tWindows ARM64

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

Uploaded CPython 3.13tWindows x86-64

laddu_cpu-0.11.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.11.0-cp313-cp313t-musllinux_1_2_i686.whl (8.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

laddu_cpu-0.11.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.11.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.11.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.11.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.11.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.11.0-cp313-cp313t-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

laddu_cpu-0.11.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.11.0-cp37-abi3-win_arm64.whl (7.3 MB view details)

Uploaded CPython 3.7+Windows ARM64

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

Uploaded CPython 3.7+Windows x86-64

laddu_cpu-0.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.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.11.0-cp37-abi3-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

laddu_cpu-0.11.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.11.0.tar.gz.

File metadata

  • Download URL: laddu_cpu-0.11.0.tar.gz
  • Upload date:
  • Size: 723.5 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.11.0.tar.gz
Algorithm Hash digest
SHA256 a9c5fce7a4b5fa5ba5bd0d794e723e56ad21a7e8d2ca4d7be16eaf755ebd51f0
MD5 ae3467c74500122549d272328f3de6e8
BLAKE2b-256 172d13de57692c3616fdcbf482ead9ce866684088784b5a9aa4c1aa31aa4ef61

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 e584bfb9ca48ad459326ec7f1f0e93ad02808f2cf384a60301b7269da454d1bc
MD5 a19dc70c8f379ea01d9c19f5006d0f32
BLAKE2b-256 9e7ddc9f1efbb65be42b7ae70b8c54bfa4df494e010ae988cd69bea9bbb939f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 5a7ae96cfec65340bb52bf73271ca8f7639edf8b950545a0335fff9f404821af
MD5 208b800fd1396a44ba0bfa673bb423e0
BLAKE2b-256 56e92c518d3f38d15889aa22073a9a27aa93eac4e9a6884eeb4564820e778771

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7da8e4e5e86a6d081551f941fda827b6673125c43d914898fc0fa18d2e9b2650
MD5 da03fc45c06c98ab66cccdaa667106bc
BLAKE2b-256 635c6637a1b1e6b0ef005e45d1cc47ea52d8adfb572166c89787c76368192d06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3b246c79c800ad35b6f0d17c0b9f875b7b7857d348472648c3c4150068c80fa7
MD5 cd7efcbf7f2871baae9904df2f25e2c6
BLAKE2b-256 57c7ec451a9d82957ed0410cace2f73375579b97c1691ea804abeacc52608480

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 116f151dd283bf4d133be1d383f16f157a704e4fb619f7f791379b5800f8aa8e
MD5 ad5d12e4a4a3709464738621ba4d62fd
BLAKE2b-256 f89bb32eb14d5b5bfd0c9ad80d5d7df8a77bacc0a2763257013ef3eb08a36675

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2c28926c78f5560a687323174f7b5657eaf2912ee1eed30f8e3d2fdbda79af05
MD5 6526a899eea075b0b96d9f86666c6228
BLAKE2b-256 43439c7a752813c84e7f166e301319875a141fe66f9891cb9fea623f2ab0a9c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1697c04524c566a5109c3debaceeb03c678304d03f63888d10b79a70aa54b01
MD5 adb4064cc24a45a7db568a2a37d4fe6c
BLAKE2b-256 2b7d9cfac23293b5a370028bc0e438c83d39673770360369c0ca2628b11d49a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ab8cf1f2bc6d1ea1483aa0eda69c53b0762185a7ee78e276f260d7bdac8a7c52
MD5 97d72b531e6a2d166d15668ba6496e8d
BLAKE2b-256 489077f1b80e2ed25c4161d144715289da076f0884f6d1d3318d3b6d37c12b71

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 78a3d6e5fb80fb7561d378a08d88c8afeefed552899dfea3ec5ad751b8215cec
MD5 0755f737788bea1e7c61ae4ad1a5b75c
BLAKE2b-256 606bc66ce2c4ae91ea5ffd84ec189868ca330ddb19f1a90549fe8a2e3a86e1df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e99d61355ebea68582e699bd63c07aab01c8562f71d739c9486bab51c7d597a9
MD5 b8d89ee1b3c92591dfaa7403aeb5a993
BLAKE2b-256 2a2a26b8c80360f80cfd293cf10bc7afc66b8e6650bf3fa22cff05b63c670dd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 421d9279bc0c8cf334aaf9052f27a7f8a46df687e0514bccd709bdf10b05f956
MD5 cf6b0aa9806109ae25b6366de8676d46
BLAKE2b-256 4650a6546dedadd88f66bd6c28ab01d61982dd55b8d3d01c2740c8bf753e1aff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.0-cp313-cp313t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 7.1 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.11.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66337c0ded11331ce76cbfde3c5e6e19c5cffbbacba44d36dd9bb3985e9cf411
MD5 978317441dd0e05338321840083aae21
BLAKE2b-256 5fca8dd1fc7df243604738791a8fc0a1fdcff703d1b0d70c50d470024b260d0c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 14a0f6f33af4f06698d3c8cbbff2b5a853ca020a1d6f454a0320a00f3a710852
MD5 575f7a76940d8869158fc5935aa263c9
BLAKE2b-256 ce651743ce554b36e23c28217abcbbea262a1bb137943ef55e498bd8be242f03

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 ea2bbe0a50f22c98317b93e98c972a3021a8f7af4abd8c2095e31e9314ddb762
MD5 cca3ceaa0066697fb1f1cd1d88f4a0fd
BLAKE2b-256 2c71fedaea3ab09a91f40cc071f91fedc7e0e2c5f8116c475efef9ea7c043fd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 319b9427db914bc4a81cb060adfa1ad2cd1b35eed7c20e85698e93e67b6cea0a
MD5 17c38b2c1095d35119f545943e8a44dc
BLAKE2b-256 648f7e62f7e486ff10bded7caaacd0dde0b6793a479f09b02ddbfdcc31402fe9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9b02def23be60cab7dbd3484cdf03319a9e4416170755fe26b2e47951d72dcf5
MD5 105af94e02cb20c80297840d92bb60fd
BLAKE2b-256 bddecb1cf0b6262a29e8f2b200120388dd493c69c5ed3fc88909054c2e402e0e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 55f86dfea46bc0d496438a4d48fb1708c12cfab6cb5eadf4fc054abf46cd101d
MD5 f48ba52a6062775a0f8b7702e70c1d42
BLAKE2b-256 29654dae0605653b183dc64aae36d615cf3caf046a610c926c59af762afbb897

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c0cda6b3436b5cfcd1e566e7da75702364b4af567b33987eb5cdd5ae7f2fa36c
MD5 38006027c1d55ce587652ed7441caf61
BLAKE2b-256 7186d02802a45e89a6a611c154cb58e1952fa451b14e955b1f654aa519406233

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c6742af209353832b4de34ffa34a88ed4b44dc47114ad8c16936ec17a7cc794c
MD5 8e65778481ba0a88e1e04a436191c15a
BLAKE2b-256 c299cf077f6c9db07796084bee2037371168ac4917304ae501a2d7a974f741d7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b5106c5441ab9f5d4cca275b629323c3aa89adb35bfd80fbc677c6482dc5f80
MD5 7a1003f3ec5765417219921d268da574
BLAKE2b-256 2aeab293d902c7807a914bcd286cb189a4fe7aa0ce2c7a23a47e5d9bf3cef81e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b4eacfbc07ae9f124f899211b6402a09b890cf487a5ade562b65ed15e8395318
MD5 8d2220beebc3e809e3d420e94af6e0cc
BLAKE2b-256 c842ca2f423c163a6ef7c3986272521d0b2d8124a29bc733253e523faf3be1fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6ac363d12743df3751cdce543c89b24b7c3714abe5fcf84e0d2e664c5d715a95
MD5 6c4af08c3e3cdf03db381331744dfcca
BLAKE2b-256 c36167e85a16cc264582b68c15ca665c0aef61eb72a984fc0968e9ff081e7fe5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5768e1c82ffa10bdb6275e6476c8cd5b4af5e933e23eb0e3dea8029aba2981e4
MD5 ec0a88d4129d88ba4025cfab3f684d92
BLAKE2b-256 5330aaa0a360e6c3553a1bd0a4746103b60fbd5f47e06c77c8f40f5bf4b489d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 405584fe47286454e78ceee4bf2f0a240213179a3a091ef05bbe0d0ee5b0dc0f
MD5 775afa716fd9d59b5bc63c867d46216f
BLAKE2b-256 409a9eb9ea61e4e021d9e5b057cecb2c3536f0611b4649ad70de0e0ada19b54b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.0-cp37-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 7.1 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.11.0-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0385ae6eaff3dad93282f6d86e064761ccd332b770d9e596bd94ae7f224018a
MD5 056417a078778a1c35d760eff48d807d
BLAKE2b-256 53a429577bb016623c276afd947d394f73a557dffa484747cf2236ec508b942d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: laddu_cpu-0.11.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.11.0-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 310d7a39b82aef9ccd430916de0078327ed1f0f96c7b4bc5d7a99c8cc072866a
MD5 737bdf34cbfb3aade9f5c7dd387cb627
BLAKE2b-256 b1e6170edb8a66cfad7c6aed84c79a5dc8adafc3516c0f93a7a9a963ed70795e

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