Skip to main content

wlsqm

top language supported Python versions supported implementations CI status

version on PyPI PyPI package format dependency status

license open issues PRs welcome

We use semantic versioning.

For my stance on AI contributions, see the collaboration guidelines.

2D example

Introduction

The wlsqm Python library is a fast and accurate weighted least squares meshless interpolator and differentiator.

The WLSQM (Weighted Least SQuares Meshless) method constructs a piecewise polynomial surrogate model on scattered data. Given scalar values at a point cloud in 1D, 2D, or 3D, this library fits a local polynomial (up to 4th order) in the neighborhood of each data point, by weighted least squares. From the surrogate model, you can read off the function value and any derivative up to the polynomial order, at the fit origin (each data point) or anywhere inside the local neighborhood.

Use cases:

  • Numerical differentiation of data known only as values at discrete points. Applies to explicit algorithms for IBVPs: compute a gradient or Laplacian on a scattered point cloud without needing a mesh.
  • Response-surface modeling on an unstructured set of design points.
  • Smoothing noisy function values — the averaging effect of the least-squares fit denoises first derivatives significantly.
    • Second derivatives are more sensitive to noise; for those, the robust recipe is to run WLSQM once to recover first derivatives on the neighborhood, then run it again on those to get second derivatives.

No grid or mesh is needed. The only restriction on geometry is non-degeneracy — e.g. 2D points must not all fall on the same 1D line.

Not a Taylor series

Despite the storage layout looking like the coefficients of a Taylor expansion (slots for f, df/dx, df/dy, d²f/dx², ..., indexed by monomial degree), the WLSQM method is not derived from a Taylor series.

The polynomial is fitted over a local neighborhood of data points by weighted least squares. The coefficients come from a linear solve, not from differentiating an analytic function at the origin. The error behavior is correspondingly much better than Taylor truncation error would predict, thanks to the averaging effect of the least-squares fit.

In a sense, we may even say that there is no underlying function that is being modeled. The only thing that exists before the fitting are the data values on a set of points. Whether or not these data values come from a differentiable function — or are just arbitrary numerical data — is immaterial.

This method appears in the literature under several names: MLS (moving least squares), WLSQM (weighted least squares meshless/meshfree), "diffuse approximation." These are essentially the same idea with varying weighting function choices.

Origin of this variant of the method

This is an independent implementation of the algorithm described (in the 2nd-order 2D case) in section 2.2.1 of Hong Wang (2012), Evolutionary Design Optimization with Nash Games and Hybridized Mesh/Meshless Methods in Computational Fluid Dynamics, Jyväskylä Studies in Computing 162, University of Jyväskylä. ISBN 978-951-39-5007-1 (PDF)

Full derivation of the generalized version (including the case of unknown function values, and the accuracy analysis) can be found in this repository, in doc/wlsqm_gen.pdf.

Features

  • 1D / 2D / 3D point clouds, polynomials of order 0 through 4.
  • Any derivative up to the polynomial order is available: at the fit origin as a DOF of the linear solve, and at any point inside the neighborhood via the interpolator.
    • Differentiation of the basis polynomials is hardcoded for speed.
  • Knowns. At the fit origin, any subset of {f, ∂f/∂x, ∂f/∂y, ∂²f/∂x², …} can be marked as known.
    • The known DOFs are eliminated algebraically, shrinking the linear system to just the unknowns.
    • The function value itself may be unknown at some of the data points — this is useful e.g. for Neumann boundary conditions in a PDE solver.
  • Weighting methods.
    • WEIGHT_UNIFORM weights all data points equally in each local neighborhood.
    • WEIGHT_CENTER emphasizes points near the fit origin (each data point), improving derivative estimates there at the cost of fit quality far from the origin (of that neighborhood).
  • Sensitivity data. Solution DOFs can be optionally differentiated w.r.t. the input function values, so you know how the output moves when the input wiggles.
  • Expert mode with separate prepare and solve stages.
    • If many fits share the same geometry but have different function-value data, ExpertSolver.prepare() generates and LU-factors the problem matrices once, and solve() can then be called many times with different fk.
    • This is the fast path for time-stepping an IBVP over a fixed point cloud.
  • Parallel across independent local problems.
    • fit_*_many_parallel and ExpertSolver(ntasks=N) run independent fits across OpenMP threads. The linear-solver step is also parallel across the problem instances.
  • Speed.
    • Performance-critical code is in Cython with the GIL released.
    • LAPACK is called directly via SciPy's Cython-level bindings; no GIL round-trip for the solver loop.
    • For asymptotic timings of the parallel batched LAPACK drivers vs. a Python loop over numpy.linalg.solve, see the figure under "Performance" below.
  • Accuracy.
    • Problem matrices are preconditioned by a symmetry-preserving iterative scaling (Ruiz, 2001) before LU factorization, which is critical for high-order fits.
      • Reference: Daniel Ruiz. 2001. A Scaling Algorithm to Equilibrate Both Rows and Columns Norms in Matrices. Report RAL-TR-2001-034.
    • The polynomial evaluator uses a custom symmetric form that is a natural multidimensional extension of the standard Horner form.
      • Evaluation uses fused multiply-add (fma), thus rounding only once per accumulation step.
      • For details, see wlsqm/fitter/polyeval.pyx.
    • Optional iterative refinement inside the solver mitigates roundoff further.

Performance

Average time per problem instance, parallel LAPACK drivers vs. a Python loop over numpy.linalg.solve, log–log scale

Average time per problem instance for the parallel LAPACK drivers in wlsqm.utils.lapackdrivers, on a synthetic batch of independent symmetric and general linear systems of varying matrix size n. Generated by examples/lapackdrivers_example.py (seeded RNG, deterministic). Both axes are log scale.

The takeaway is that the batched parallel drivers (red and green lines) cost a small fraction of what a Python loop calling numpy.linalg.solve (black line) costs per instance — most of the savings come from staying inside nogil Cython for the loop and from OpenMP parallelism over independent problems. The factorize-once-then-solve pair (green) is essentially as fast as the single-shot solver (red) when the batch is solved exactly once, and pays off when the same factorization is reused against many right-hand sides.

To regenerate the figure on your own machine:

python examples/lapackdrivers_example.py

The script writes both lapack_timings.png and lapack_timings.pdf to the project root.

Examples

Minimal example using a manufactured solution to produce the input data: fit f(x,y) = 1 + 2x + 3y + 4xy + 5x² + 6y² on a scattered point cloud centered at the origin.

import numpy as np
import wlsqm

# seed the RNG for reproducibility
rng = np.random.default_rng(42)

# point cloud
xk = rng.uniform(-1.0, 1.0, size=(30, 2))

# data values on the point cloud
fk = 1 + 2*xk[:,0] + 3*xk[:,1] + 4*xk[:,0]*xk[:,1] + 5*xk[:,0]**2 + 6*xk[:,1]**2

# point(s) where to evaluate the fit [[x0, y0], [x1, y1], ...]
xi = np.array([0.0, 0.0])

# output array for the fit
fi = np.zeros(wlsqm.number_of_dofs(2, 2))  # (number_of_dimensions, polynomial_order)

wlsqm.fit_2D(
    xk=xk, fk=fk, xi=xi, fi=fi,
    sens=None, do_sens=False,
    order=2, knowns=0,
    weighting_method=wlsqm.WEIGHT_UNIFORM,
    debug=False,
)

# fi now holds the partial derivatives at (0, 0).
# The ordering is [f, ∂f/∂x, ∂f/∂y, ∂²f/∂x², ∂²f/∂x∂y, ∂²f/∂y²].
print(fi)

For this exact polynomial, the fit recovers [1, 2, 3, 10, 4, 12] to machine precision.

For a comprehensive tour of the API, see examples/wlsqm_example.py.

For a minimal ExpertSolver example that demonstrates the prepare/solve separation, see examples/expertsolver_example.py.

Installation

From PyPI

pip install wlsqm

Pre-built wheels are available for Linux, macOS, and Windows, for Python 3.11–3.14. Parallel OpenMP is enabled in all published wheels:

  • Linux: GCC's libgomp via manylinux.
  • macOS: LLVM's libomp (from conda-forge) bundled into the wheel by delocate-wheel.
  • Windows: MSVC's vcomp140.dll, which ships with every Python-for-Windows install.

From source

git clone https://github.com/Technologicat/python-wlsqm.git
cd python-wlsqm
pip install .

For maximum performance on your specific machine, build with architecture-specific optimizations:

CFLAGS="-march=native" pip install --no-build-isolation .

PyPI wheels use generic -O2 because -march=native bakes the build machine's instruction set into the binary — a wheel built with AVX-512 would crash on a CPU without it. Building from source avoids that and lets the compiler target your specific hardware.

macOS: OpenMP for source builds

macOS's Apple Clang does not ship an OpenMP runtime. For a source install to produce a parallel build, install libomp first:

brew install libomp
pip install --no-binary wlsqm --no-build-isolation wlsqm

Without libomp, the source build fails at compile time because Cython's cimport openmp in the source emits #include <omp.h>. The published wheels from PyPI already bundle their own libomp.dylib via delocate-wheel, so pip install wlsqm (without --no-binary) works on macOS regardless of whether you have Homebrew's libomp.

Development setup

Uses meson-python as the build backend and PDM for dependency management:

git clone https://github.com/Technologicat/python-wlsqm.git
cd python-wlsqm
pdm config venv.in_project true
pdm use 3.14                             # or whichever Python you prefer
pdm install                              # creates .venv, installs dev deps
export PATH="$(pwd)/.venv/bin:$PATH"     # or $(pdm venv activate) — meson and ninja must be on PATH
pip install --no-build-isolation -e .    # editable install

After editing a .pyx or .pxd file, the next import wlsqm auto-rebuilds the changed extension. No manual reinstall needed.

--no-build-isolation is required for editable installs with meson-python: the on-import rebuild mechanism needs Cython, NumPy, meson, and ninja to remain available in the venv, not just in a throwaway PEP 517 overlay.

Running the tests

pdm run pytest tests/ -v

As of v1.0.0, the test suite has 57 tests covering:

  • polynomial recovery (1D/2D/3D, order 0–4),
  • ExpertSolver prepare/solve round-trips,
  • interpolation accuracy,
  • _many_parallel ≡ _many (serial) equivalence,
  • classical finite-difference-stencil equivalence on non-polynomial inputs (sin, exp, Gaussian, …),
  • first-derivative robustness to Gaussian noise,
  • the LAPACK driver layer, and
  • .pxd install verification.

Documentation

See TODO.md for known gaps in the theory PDFs.

Dependencies

  • NumPy ≥ 1.25
  • SciPy ≥ 1.9 (both build-time for cython_lapack and runtime)
  • Cython ≥ 3.0 (build-time only)
  • OpenMP (build-time; see platform notes above)

Requires Python ≥ 3.11.

License

BSD 2-Clause. Copyright 2016–2026 Juha Jeronen, University of Jyväskylä, and JAMK University of Applied Sciences.

Acknowledgement

The original version of this work, in 2016–2017, was financially supported by the Jenny and Antti Wihuri Foundation.

Metadata

Release files for wlsqm 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wlsqm 1.1.0
File Size Uploaded
wlsqm-1.1.0.tar.gz 1.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for wlsqm 1.1.0
File
wlsqm-1.1.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details
wlsqm-1.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
wlsqm-1.1.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details
wlsqm-1.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
wlsqm-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
wlsqm-1.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
wlsqm-1.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
wlsqm-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
wlsqm-1.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
wlsqm-1.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
wlsqm-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
wlsqm-1.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
wlsqm-1.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
wlsqm-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
wlsqm-1.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 15.4 MB

Release files / wlsqm-1.1.0.tar.gz

Download URL wlsqm-1.1.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
7ca0101c506fcc13f15180c0a7845e63e887b6dab8dcec12a6e3b8bbeceabad3
BLAKE2b-256 checksum
How to use checksums
40a53e6174961ff8a6ac3dd18f4d5b1a08c38b3da1be6913639cacf103bf8864
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp315-cp315-win_amd64.whl

Download URL wlsqm-1.1.0-cp315-cp315-win_amd64.whl
Size 817.3 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
c693e33607c97358b00f663c864318f31e026248c8939e167c9193c86a0de0c5
BLAKE2b-256 checksum
How to use checksums
4ab2300e737c4115288a08717f3505efd0b00be2e589644effaa3e5803734f06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL wlsqm-1.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.0 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95e1f8d5ce14a5b82e76aef2f36f3aaa035a629e5f22401604b89acdec9bb044
BLAKE2b-256 checksum
How to use checksums
544ffe797e0af015070f4b67260c251d5376c113576a7d0b84eda2367abfcc1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp315-cp315-macosx_11_0_arm64.whl

Download URL wlsqm-1.1.0-cp315-cp315-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b24a6e4c932232d3e6cb8cf6a923a7dee85290c4a1cac7811fa5bf57631f4d07
BLAKE2b-256 checksum
How to use checksums
b09b2cd2bbd316c12f6ba6d6a58742c989a7901ed665defd21dd2c3eba1dbe26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp314-cp314-win_amd64.whl

Download URL wlsqm-1.1.0-cp314-cp314-win_amd64.whl
Size 818.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
efa0d5e29784d33dcd26a485876d0c26a82212122bf15e4ba70e320964cb6c6c
BLAKE2b-256 checksum
How to use checksums
f5ca7ea0dbefd832140a0bee159c7d3ba6a8a542787b6384aef82597b8657f0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL wlsqm-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.0 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c4317cb29c294fa28b8b43dc55f39236fadb4e6aec2a06dfae326345ee3da84b
BLAKE2b-256 checksum
How to use checksums
528c9f042c7a9614d11fcf88404af6c3a8c24405452028128dc1129feb0d8258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL wlsqm-1.1.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
70b6dbbfe1cf97ac73a59ccaf78769fb70af8c5e026c8a2c365f1294cd540425
BLAKE2b-256 checksum
How to use checksums
0c6e3264a0bd07374703ce5776d94f4503f1f05382d66114eb75bb7aa3549258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp313-cp313-win_amd64.whl

Download URL wlsqm-1.1.0-cp313-cp313-win_amd64.whl
Size 795.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
66186d8fd9abfa1c006915d48bde6f8b6b93e07775eaeddbabb06f1210fac516
BLAKE2b-256 checksum
How to use checksums
a0103c5b75612f98ac58d685b36c341bc85b2750c5fcb9f796575148fcd64188
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL wlsqm-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.0 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
771b26e8f239e7cdf0d150591d0a0fb571ac8d66ea09f9a1b535e4cbc98e00e9
BLAKE2b-256 checksum
How to use checksums
63beda3b4fd69ff7d2029630fbec7d60a6adbf3231093946e375692f11c7d105
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL wlsqm-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 999.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fe529573584d193590b61f300a5fde8dd619c85743a6325a3a8b3e9834e0eca6
BLAKE2b-256 checksum
How to use checksums
3ff91ee526596a086e5670809af0b0a2b837680e5802d184e9c435c8fda5549f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp312-cp312-win_amd64.whl

Download URL wlsqm-1.1.0-cp312-cp312-win_amd64.whl
Size 796.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
039031f464a09f71a4d49f0d0862a6e1d9867d34b780b1ba6f9936ebc76b8759
BLAKE2b-256 checksum
How to use checksums
a99de4355bbcc36f58a6fbe309b6f55a1dfe125f8165b9e3ff5729472a469835
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL wlsqm-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f675cbcf143b6648c668865d2de234a3f8862b36cc6a0d978b5fe11e625d72a2
BLAKE2b-256 checksum
How to use checksums
2b7aed2036ceae27369c897193b97700891e68f259ae8abfacaff454240dd6e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL wlsqm-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 993.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ae1190904581f7e2247e5e1a8b1ea78c8f92f5ac72fde10f73bc0773d2d84846
BLAKE2b-256 checksum
How to use checksums
2e4a8a6dff187743ce4187329e7fdd595cd720c8f60bba8ee967dce81ad95f9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp311-cp311-win_amd64.whl

Download URL wlsqm-1.1.0-cp311-cp311-win_amd64.whl
Size 800.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
84349ac1a90ea3c0d5003ec1efc1f2085a51c9b4b2c9cd02960f5fc93b45ecbc
BLAKE2b-256 checksum
How to use checksums
541e701bff06c7fedf2b2e00466b61835e61141574206b97dec674645db38c6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL wlsqm-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
47c58c993c19681d674ce86ef9b1eb6a46ac2cff68e42a72610609accde93bdc
BLAKE2b-256 checksum
How to use checksums
fcc39b6c6ce8f0a4ce380f9d0e3f052d1bd5b2e73c964caa922f1df9d9873df9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / wlsqm-1.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL wlsqm-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 999.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ed212cac5683c7560de93b1232a21aa08b33a8c67e8e4662f8eb758594a2d52a
BLAKE2b-256 checksum
How to use checksums
678889b88dc5a748785a4cd69f543794994ccefdf47653688d20ae5f53ff4487
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

16 release files

1.0.0

13 release files

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page