Skip to main content

StochMat

Coverage Status

Overview

stochmat is a Cython-based library for fast, low-level operations on stochastic matrices. It provides memory-efficient sparse representations (SparseStochMat, SparseAutocovMat) and optimized matrix operations, with optional Intel MKL acceleration for high-performance computing workflows.

Quickstart

import numpy as np
from scipy.sparse import csr_matrix
from stochmat import SparseStochMat

# Create from scipy sparse matrix
A = csr_matrix(np.random.rand(1000, 1000))
ssm = SparseStochMat.from_full_csr_matrix(A)

# Efficient operations
ssm.inplace_row_normalize()  # Normalize rows in-place
full = ssm.to_full_mat()     # Convert back to scipy CSR

Installation

Supported Python versions:

Python 3.14 Python 3.13 Python 3.12 Python 3.11 Python 3.10

Setting up a virtual environment

We recommend installing stochmat in a virtual environment to avoid dependency conflicts.

On macOS and Linux:

$ python -m venv .venv
$ source .venv/bin/activate

On Windows:

PS> python -m venv .venv
PS> .venv\Scripts\activate

Installing stochmat

stochmat can be installed directly from GitHub into your virtual environment. Simply run:

pip install git+https://github.com/bovet-research-group/stochmat.git
Alternative: Using `uv`

If you have uv installed, you can use it as an alternative:

uv pip install git+https://github.com/bovet-research-group/stochmat.git

Optional: Intel MKL for better performance

For optimal performance with large sparse matrices, install Intel MKL:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install intel-mkl

macOS (via Homebrew):

brew install intel-mkl

After installing MKL, install stochmat with MKL support:

pip install "stochmat[mkl] @ git+https://github.com/bovet-research-group/stochmat.git"

Or with uv:

uv pip install "stochmat[mkl] @ git+https://github.com/bovet-research-group/stochmat.git"

Important — [mkl] is a hard runtime dependency. Installing stochmat[mkl] pulls in sparse-dot-mkl, which in turn requires Intel MKL shared libraries (e.g. libmkl_rt.so) to be loadable at runtime. stochmat will refuse to import (raising ImportError with an actionable message) if sparse_dot_mkl is installed but the MKL libraries are missing.

If you build stochmat from source with [mkl], ensure MKL is installed on the build/host machine before running pip install. If you do not need MKL acceleration, install plain stochmat (no extra) and SciPy will be used as a transparent fallback for sparse matrix products.

Runtime backend flags

stochmat ships two compiled Cython extensions (stochmat._cython_sparse_stoch and stochmat.fast) and integrates the optional sparse_dot_mkl backend. Each has a transparent pure-Python fallback. The stochmat.backends submodule exposes three boolean attributes that report which backend is active in the current process:

Attribute True when… Fallback when False
stochmat.backends.cython_sparse_stoch the compiled _cython_sparse_stoch extension loaded successfully pure-Python _cython_subst (functionally complete, slower)
stochmat.backends.fast the compiled fast extension loaded successfully pure-Python fast_subst — note that nvi_parallel, nvi_vectors, and nvi_mat raise NotImplementedError in the fallback
stochmat.backends.mkl the [mkl] extra is installed and MKL native libraries are loadable SciPy's native sparse matmul (A @ B)

Quick check:

import stochmat
print(stochmat.backends.summary())
# {'cython_sparse_stoch': True, 'fast': True, 'mkl': False}

When a compiled extension cannot be loaded, a warning is emitted via the stochmat.backends logger. See the MKL section above for the fail-fast behavior specific to [mkl].

Development installation

You can also clone the repository and install the package from your local copy. This is the recommended strategy if you intend to work on the source code, allowing you to modify the files in-place.

Using pip

  1. Clone this repository
  2. cd into the repository
  3. Install in editable mode with all optional dependencies:
python -m pip install -e ".[mkl]" --config-settings=editable.mode=redirect

To include testing and documentation dependencies:

python -m pip install -e ".[mkl]" --config-settings=editable.mode=redirect
pip install pytest pytest-cov ruff sphinx sphinx-autoapi

Using uv (fallback)

  1. Clone this repository
  2. cd into the repository
  3. Sync all dependencies including extras and development groups:
uv sync --all-extras --all-groups

This installs the package in editable mode with MKL support, testing tools, and documentation dependencies.

Note: Building from source requires a C++ compiler and Python development headers. On Ubuntu/Debian: sudo apt-get install build-essential python3-dev

Running tests with Cython coverage

To measure coverage including Cython code (adds ~10-20% test runtime overhead):

CYTHON_COVERAGE=1 uv sync --all-extras --all-groups
uv run pytest --cov=stochmat --cov-report=html

Open htmlcov/index.html to view the coverage report.

Using stochmat as a dependency in another package

If you build a downstream package (call it downpkg) on top of stochmat and want to give your users the same opt-in MKL story (pip install downpkg → SciPy fallback; pip install downpkg[mkl] → MKL-accelerated end-to-end), the layout below is the recommended template.

The constraint that drives the layout

stochmat[mkl] is a fail-fast hard runtime dependency (see the MKL section above): if sparse_dot_mkl is importable in the environment but the Intel MKL shared libraries cannot be loaded, import stochmat (and therefore import downpkg) raises ImportError immediately. Two consequences:

  1. Never pull sparse-dot-mkl (or stochmat[mkl]) into a dependency set that runs on machines without MKL system libs — including testing / dev groups installed in pure-Python CI jobs. Same trap stochmat's own pyproject.toml documents.
  2. Your downstream [mkl] extra must pull stochmat[mkl], not just sparse-dot-mkl. Going through stochmat's extra is what activates the MKL probe code path and avoids double-declaring the dependency.

pyproject.toml (PEP 621)

[project]
name = "downpkg"
requires-python = ">=3.10"
dependencies = [
    "stochmat>=X.Y",   # base: SciPy/numpy fallback path
    # ...other base deps
]

[project.optional-dependencies]
# Mirror stochmat's extra name 1:1 so users learn one convention.
# This is the ONLY place sparse_dot_mkl enters downpkg's dep graph.
mkl = [
    "stochmat[mkl]>=X.Y",
]

[dependency-groups]
testing = [
    # IMPORTANT: do NOT include "stochmat[mkl]" or "sparse-dot-mkl" here.
    # The pure-Python CI job installs this group on a runner without MKL
    # libs; pulling sparse_dot_mkl would crash `import stochmat` at
    # collection time (stochmat's MKL probe is fail-fast).
    "pytest>=8",
    # ...
]

testing-mkl = [
    { include-group = "testing" },
    "stochmat[mkl]>=X.Y",     # opt-in MKL test job
]

dev = [
    { include-group = "testing" },
    # NOT testing-mkl by default — let developers opt in explicitly so a
    # fresh `uv sync` on a machine without MKL libs doesn't fail.
]

The version requirement is repeated in dependencies and in the mkl extra on purpose — the extra is purely additive (it just turns the bare requirement into one carrying [mkl]); pip / uv intersect them and pick a single resolution. Pinning the version only inside the extra silently weakens the base requirement when users install without [mkl].

Runtime usage (Pattern A, recommended)

For the common case where downpkg is a thin wrapper that delegates to stochmat.sparse_matmul, stochmat.sparse_gram_matrix, etc., no downstream code is required to make MKL work. Those entry points read stochmat.backends.mkl at call time, so users get acceleration purely by installing downpkg[mkl]:

import downpkg
import stochmat
print(stochmat.backends.summary())
# {'cython_sparse_stoch': True, 'fast': True, 'mkl': True}
Pattern B: re-export / aggregate the backend report

If downpkg adds its own optional accelerators (e.g. a Numba code path) and wants a single diagnostic surface, expose a downpkg.backends submodule that defers to stochmat.backends:

# downpkg/backends.py
"""Active backend report for downpkg."""
import stochmat


def summary() -> dict[str, bool]:
    return {
        "stochmat_cython_sparse_stoch": stochmat.backends.cython_sparse_stoch,
        "stochmat_fast": stochmat.backends.fast,
        "stochmat_mkl": stochmat.backends.mkl,
        # downpkg-specific accelerators here, e.g.:
        # "downpkg_numba": _numba_loaded,
    }


__all__ = ["summary"]

Avoid binding mkl = stochmat.backends.mkl at module top-level — that captures a snapshot at import time and breaks if downstream tests monkey-patch the flag. Always look it up dynamically (as in summary() above) so the source of truth (stochmat.backends.mkl) stays authoritative.

Note on the Cython extensions (no equivalent extra)

The MKL story is install-time and declarative (an extra in pyproject.toml); the Cython story is build-time and imperative (an environment variable in the shell). They are not symmetric, and downstream pyproject.toml has nothing to declare for the Cython side.

  • Wheels first. When stochmat publishes pre-built wheels for the user's platform/Python version, no C++ toolchain is required and pip install downpkg just works. The discussion below only matters for sdist installs (unsupported platforms, --no-binary, dev installs from git). For build-from-source prerequisites, see the "Note" at the end of the Development installation block above (build-essential python3-dev on Ubuntu/Debian).

  • The pure-Python escape hatch is an env var, not an extra. End users who want to skip the C++ build set STOCHMAT_BUILD_EXTENSIONS=0 before pip install; this flows directly into stochmat's scikit-build-core / CMake build regardless of whether the install was triggered transitively by downpkg. Build-time env vars cannot be encoded in [project.optional-dependencies], so downstream cannot offer this as a downpkg[no-ext] extra — your README can only forward the knob to your users with a one-liner.

  • Caveat for downstream code that uses nvi_*. The pure-Python fallback stochmat.fast_subst raises NotImplementedError for nvi_parallel, nvi_vectors, and nvi_mat. If downpkg calls any of those, a no-extensions install will work for everything except those code paths; either skip them under not stochmat.backends.fast or implement your own fallback.

  • CI mirroring. Add a third row to the CI table to validate the fallback path:

    Job Install Purpose
    test-no-ext STOCHMAT_BUILD_EXTENSIONS=0 pip install -e ".[testing]" Validates downstream code under stochmat's pure-Python fallback (_cython_subst / fast_subst). Tests touching nvi_* must skip when not stochmat.backends.fast.

Downstream README — copy-down warning

Because the fail-fast behavior propagates through import stochmat into every downstream import, downpkg's own README should carry the same caveat:

downpkg[mkl] is a hard runtime dependency. It pulls stochmat[mkl], which requires Intel MKL shared libraries to be loadable at runtime. import downpkg will raise ImportError if sparse_dot_mkl is installed but MKL libs are missing. If you do not need MKL, install plain downpkg and SciPy will be used as a transparent fallback.

Mirroring CI

Two parallel jobs, same shape as stochmat's own workflow:

Job Install Purpose
test-cpu uv sync (no extras) or pip install -e ".[testing]" Validates the SciPy-fallback path; no MKL libs on the runner.
test-mkl apt-get install intel-mkl then uv sync --group testing-mkl or pip install -e ".[mkl]" -e ".[testing]" Validates the MKL-accelerated path; system libs installed before pip.

The test-cpu job must not have sparse-dot-mkl in its lockfile or install set, for the same reason stochmat's own pure-Python CI job does not.

Metadata

Release files for stochmat 1.0.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 stochmat 1.0.0
File Size Uploaded
stochmat-1.0.0.tar.gz 91.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for stochmat 1.0.0
File
stochmat-1.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 14.0+ x86-64 Details
stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
stochmat-1.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 14.0+ x86-64 Details
stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
stochmat-1.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 14.0+ x86-64 Details
stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
stochmat-1.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 14.0+ x86-64 Details
stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 9.2 MB

Release files / stochmat-1.0.0.tar.gz

Download URL stochmat-1.0.0.tar.gz
Size 91.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d3fd2bd2fd6adef69e3a7167ff2566a054451dbd40c545376f9d33d2972b97db
BLAKE2b-256 checksum
How to use checksums
88a1e7503aafb0b424fdd0e667f6e979df604d084fe2af2f21b7fa50eb266c57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp313-cp313-win_amd64.whl

Download URL stochmat-1.0.0-cp313-cp313-win_amd64.whl
Size 288.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ab605d4452f585c6c142efa9c085c2f7f1eeb631bb6e5887693a60aef283a463
BLAKE2b-256 checksum
How to use checksums
ab757dc49a21004f77ea06606cdf9e1440027f3a9be15c2cec3e8b6f97d30b74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL stochmat-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 448.3 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8ea699f61c4b07dea5b2a692d44d2f9569e5889436df7465bf7ead5849ae6f4f
BLAKE2b-256 checksum
How to use checksums
8c8792b74dae287d793640842ded877df500785ce62ec03eff23eaf73a75ca9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL stochmat-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 423.9 kB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f602f249014486f3b4664ff4dfe3be6f1dec7ddcc02a605588aa870fa0000b38
BLAKE2b-256 checksum
How to use checksums
5868899ff564406b773252bcde8fd278b8d962efe9d1ae04414cee3f9ef74a50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl

Download URL stochmat-1.0.0-cp313-cp313-macosx_14_0_x86_64.whl
Size 573.2 kB
Tags CPython 3.13 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
76c9cd41f00048a55f08bb52a235bbd0acb883f43a18fbcb8c4aa7df864f12df
BLAKE2b-256 checksum
How to use checksums
9d90dd0c8f3ee8c115c0c6e73562e74966f8dd9a9177522b0eafc329b38d6aad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl

Download URL stochmat-1.0.0-cp313-cp313-macosx_14_0_arm64.whl
Size 523.2 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
a9b80aae42902fbedef6c924707f985d8519f0c7c3ac03106c9de7e220e04d0a
BLAKE2b-256 checksum
How to use checksums
a7689602a0f9382507a4385aa01097d309c30921c18bd4a82b9b91b113ff31a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp312-cp312-win_amd64.whl

Download URL stochmat-1.0.0-cp312-cp312-win_amd64.whl
Size 289.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
155032e8bb552a0b952c245a7fba536b0cc20ee61c50b42a6455a09376209ec3
BLAKE2b-256 checksum
How to use checksums
2593f501ef89721c4ea7986eee00f6fce9574d92f3d1ad8a9f95195967dfd92c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL stochmat-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 449.3 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fc1c996910bbdac431d4248a9cf8b32f007d013f7d53b8787b003961174eb73b
BLAKE2b-256 checksum
How to use checksums
b813f77002c6a5236d42f669a59175bc6cdc3816e45063071281ebf206a557dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL stochmat-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 421.6 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
273dca9aa2c6752238b82f1fdecb058613f6c76fd8be3672a29fc8303c03415f
BLAKE2b-256 checksum
How to use checksums
7547d43349e78eca183b3b879f357f43db34e58c26f0e91a6531a2ba92175fcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl

Download URL stochmat-1.0.0-cp312-cp312-macosx_14_0_x86_64.whl
Size 574.4 kB
Tags CPython 3.12 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
24bbdccf059d5ad5486fbddd4bde57d4f8a15738501078589b8d1f5dd3cd4981
BLAKE2b-256 checksum
How to use checksums
db28d3c6cbe0b66128f8ee80b1634ae30fd397b751af9540b721e99304344c66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl

Download URL stochmat-1.0.0-cp312-cp312-macosx_14_0_arm64.whl
Size 524.4 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
910e1341eb58af3eb38504b5f68ff8888f29b23aaa282855e2aaa7ca8e8b663c
BLAKE2b-256 checksum
How to use checksums
29d63b539cab6daa7be1c7f3f9b90c90ce5d4dde61642992c4884dcbb8833fc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp311-cp311-win_amd64.whl

Download URL stochmat-1.0.0-cp311-cp311-win_amd64.whl
Size 299.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d4b99983a676c41700426788ec6013d4ac069218ab3aef30b14025948779a953
BLAKE2b-256 checksum
How to use checksums
fdd8bbf80cbd6b5f751fe3a99bb16c1a2f4fe7f4fc99bbf334807f0a201414ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL stochmat-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 460.8 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
29c6e7c4961bf24f3732f11f74d5b984ca1bf44349e50ebd5ad1f2f2a690bb6c
BLAKE2b-256 checksum
How to use checksums
3f0def207d28115010af0244a6fc6a9e3298dcb5602c2ef32970da8a480114d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL stochmat-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 434.7 kB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a443ae979c16e940ae66bdcaaeb47e240a028f8081b1378960d6c98a087fb5a6
BLAKE2b-256 checksum
How to use checksums
5d71db0e1709a2621f8ac13941f97e3259b3f5602c8d1d1d3147fbfb882f9bc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl

Download URL stochmat-1.0.0-cp311-cp311-macosx_14_0_x86_64.whl
Size 571.9 kB
Tags CPython 3.11 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
922ea3c2e26422d2ac03c9ae0f989c7cf6bdf8e62f797297d483e92b100cbe96
BLAKE2b-256 checksum
How to use checksums
90b7f16fbb818bdac4323f4e24e319447d0db5d6f81f41fc818ddbbf38c06807
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl

Download URL stochmat-1.0.0-cp311-cp311-macosx_14_0_arm64.whl
Size 524.6 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
8c041679401d15312da099bb9b1c193b534069fdb3d3df1fbed7248b3fd5e5e7
BLAKE2b-256 checksum
How to use checksums
68f0f2998e5243c394d4d367c87194290de95f6e32737a11ac13ddfd39933c74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp310-cp310-win_amd64.whl

Download URL stochmat-1.0.0-cp310-cp310-win_amd64.whl
Size 299.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3d72258cda4c83e23ff80369e4cfe003657f161b209c85ea547083dc52709bfe
BLAKE2b-256 checksum
How to use checksums
2951fc3b77ef8ad9bad9ac31390cb407573959413c907009f22a299a2b5fcf9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL stochmat-1.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 461.4 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
26f8bd58e2f7afb0158d44855541a53eb82bd837f2f3e2146d7585fc02c339c9
BLAKE2b-256 checksum
How to use checksums
0447e112ce2fedb0645c361f3c31d63d0333d18a12c46dcccfba15ae6fa0cb45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL stochmat-1.0.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 436.1 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bea7c8e5cfe54d721d313732e67bdcb52e7357e3721149afeab0add3475d2cb2
BLAKE2b-256 checksum
How to use checksums
3cae8f88610e72b7913ef85e0feabe83dd85652b42bb7947bdc639bf0fa124c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl

Download URL stochmat-1.0.0-cp310-cp310-macosx_14_0_x86_64.whl
Size 575.4 kB
Tags CPython 3.10 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
6f51bf3a76f8f72a61a1258e08f5714211341ac5167fe99147ca4dca7ccfbdce
BLAKE2b-256 checksum
How to use checksums
cc262054c441f989b95701e25d59324602bf3dc930053f25431e4b56fed8650c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release files / stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl

Download URL stochmat-1.0.0-cp310-cp310-macosx_14_0_arm64.whl
Size 527.8 kB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
c21eb4d6cf0032ecb3e7f00cf2adf9cafc7ffa5e96eb036ef446885e83c74c31
BLAKE2b-256 checksum
How to use checksums
d3cb820f8654cad5941bfe809d3a1fb3afd5bd9aaf32f6aedfafe27f9dcddbe0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

21 release files

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