Skip to main content

A cython based library for fast, low-level operaitions on stochastic matrices.

Project description

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.

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

stochmat-1.0.0rc5.tar.gz (90.9 kB view details)

Uploaded Source

Built Distributions

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

stochmat-1.0.0rc5-cp313-cp313-win_amd64.whl (288.9 kB view details)

Uploaded CPython 3.13Windows x86-64

stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_x86_64.whl (448.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_aarch64.whl (424.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_x86_64.whl (573.3 kB view details)

Uploaded CPython 3.13macOS 14.0+ x86-64

stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_arm64.whl (523.3 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

stochmat-1.0.0rc5-cp312-cp312-win_amd64.whl (289.6 kB view details)

Uploaded CPython 3.12Windows x86-64

stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_x86_64.whl (449.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_aarch64.whl (421.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_x86_64.whl (574.5 kB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_arm64.whl (524.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

stochmat-1.0.0rc5-cp311-cp311-win_amd64.whl (299.7 kB view details)

Uploaded CPython 3.11Windows x86-64

stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_x86_64.whl (460.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_aarch64.whl (434.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_x86_64.whl (571.9 kB view details)

Uploaded CPython 3.11macOS 14.0+ x86-64

stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_arm64.whl (524.6 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

stochmat-1.0.0rc5-cp310-cp310-win_amd64.whl (299.7 kB view details)

Uploaded CPython 3.10Windows x86-64

stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_x86_64.whl (461.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_aarch64.whl (436.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_x86_64.whl (575.4 kB view details)

Uploaded CPython 3.10macOS 14.0+ x86-64

stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_arm64.whl (527.9 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file stochmat-1.0.0rc5.tar.gz.

File metadata

  • Download URL: stochmat-1.0.0rc5.tar.gz
  • Upload date:
  • Size: 90.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stochmat-1.0.0rc5.tar.gz
Algorithm Hash digest
SHA256 a899d73b7bf17b788141ddad523a521dcc0efdc0ed730bb3b482641cb517dbd7
MD5 80a95dee34b884b1787bf4961ac37cd3
BLAKE2b-256 cbb30d6ff7af0734026fe879f4460e98be16c9fc3c46a670fdd634787a93bd63

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5.tar.gz:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0rc5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 288.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stochmat-1.0.0rc5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 148b3e82b7ea20de0f0b9769b75578d49d3459c655b2e362cd8da669eaf48173
MD5 4253643f0485bfc6292cdb15894fe152
BLAKE2b-256 b57b667ce820f770932d20c94b6faa155bd3c99d53d7a67aaeaf560e9353e13e

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp313-cp313-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b792350f70a70c75acce9f2614c153e709d3193481500cf7eda79f98c7903ca9
MD5 a785f5d640262e80718e17aee3f91f2b
BLAKE2b-256 9880623a0b2a0bc3c940deddc5e9eb89e27c5115493e477167ed844aa6ee05b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a7082aeb993805a57116b5010ca679f58a7bf49e297937b9fcf2cf4e974b2eca
MD5 646fa3eb7a5f788e556ab85e65609fdc
BLAKE2b-256 ff1821c12df98abe7c25bb97bb860fb15179fe169225bec273323842c38a8e30

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 d21a82ec9cdbbf96b83a15ae52e4496c359a9ff6b046feab2ec09d88e3692a36
MD5 abcba9046df8c53a2e8b7e717bb0e9b9
BLAKE2b-256 7ebcab6446699abebff455a77583f74ce81b504d2d843f302b872b25f8595b3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e963f8f7ceeb6b75fc64d1a04b2420bc32ea439a1658df3e5c2a590ecf0491bc
MD5 0e6926e6c369b3b138d8fd227817fd05
BLAKE2b-256 31d5d312154a1a723970060df3f3b8a7e07744f89492758bc04f1891429494cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0rc5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 289.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stochmat-1.0.0rc5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 21975528a30909ed3871e8a184d02348661205dec0d08051e8313085b58f4820
MD5 324d55f3541adcaef95ee508d7003fb4
BLAKE2b-256 ca3090793114b494ddd66d6bbf5b007d4c99e6c5b68d2144712232bab9f6339b

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp312-cp312-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eba374d07eb054af3750e118fa60a6c5db7d4e726b48301b7f1dcc96a1e619b2
MD5 560aa9b1f53a170e90c2631114455607
BLAKE2b-256 196284c9633ccb56c8887862bae995febd1a5b5bcd4f8eb7caf1af7b9cc8c871

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 50741358259728f972dfa34f9f8734d88adc8812ee46673390c68fa7ea8647b2
MD5 f7e50ad6b0cbc80a805815ef6ecf6b68
BLAKE2b-256 552277d242b4803d1b8c0c40207a3ffa1dd86e73d8ddb43709b3a1ecc3efe848

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 d640a41222b6e650810c91326717fef16350bf14dcc8f62c67f16832325b6ad3
MD5 bc40266c40a4e0f4dc6a519065a3ae29
BLAKE2b-256 c89b32ca3ed84ef83b9ecb2e5d9396e97bdc6987c262f84892282fa1306e3d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 587c9b8503f95cc20c9fc2500986a5bb1edc858f18216b934fbf4c8f42109557
MD5 85d15944ac3fbe1ec3a84f59422b71a0
BLAKE2b-256 4f6eb177dc63fc0cc34927e4b3512cfaceafb38caedecaef6dafa6dd228e3f4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0rc5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 299.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stochmat-1.0.0rc5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3af0423e7103c85465146ac9d9e03aa803375164e744e5f3cefaa47464c98fe8
MD5 58907f3a947d50473f3b4f2387d8f1ed
BLAKE2b-256 9260d3083da9bd99d8e8b032ba1295c84c2b84faecae48a7195a62badd6b5571

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp311-cp311-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebf19c0b8fe38f2d6300a96ddd866b0af95d1355bccd4cc3bb7b523b3cba8ff2
MD5 f804829998de884ca42d6c2fab3276fb
BLAKE2b-256 a11ea1e772fbdc9ef0b4418ba5ab466a57687f39e72f6f5c3fe2b37e90a87f3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4bf7029c5970c5b9608a726054c69fee95f916528f43fe4c56e7aa447d1656de
MD5 0bb52661d5720e406eeeaf8f71001e82
BLAKE2b-256 b67adf98043389f368fbbb56526f9858ab5bb6349723cdc18e64e1e5f65e8eee

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 59ab586c634e4010bb61a4e175f4e01a3bc6d840c075f757a835c5b4d3271b89
MD5 05e12c2162fa3e28afab9d7614544fff
BLAKE2b-256 4dd1bc103166716577e7a8d78fddfa70031ed7e6129fe3f11c3708a9d5e368c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f7e1e5533331922efb5099ea307c9bd29e357fd978e11f1e0ce075917623f553
MD5 a6f99e8f4216ecc7e78bce5d9fa04db6
BLAKE2b-256 fdf8f730bf504941eb74ecc00e5f42d79174afa98c1b0471078d1517db8f4d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: stochmat-1.0.0rc5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 299.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stochmat-1.0.0rc5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 018f5f2392f646d162026e4ae55f687ac4e16751be357233177adb95cec66efd
MD5 d4178070df32d32cfb5859b620d40e47
BLAKE2b-256 f1ac517c0109fe0fc41f06154e91470dedec0300c8861bba8c851505c7e5383e

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp310-cp310-win_amd64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1765bd10f6d53ec4004e54b7ee4dd78b12319b526f39ab3c2f333016b97226c
MD5 436177993fdb97bb38e2d381daa968a1
BLAKE2b-256 2f4f8f65389eee38d6868080ce88738637a03448a5eaee895254465c4db533c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 756b4959d61e8ea95568d8c822f44dcd60fc027de0d6987301bf6217b8556d4e
MD5 d4ce8d09deec60824e40370227ac8938
BLAKE2b-256 268326ff773266caca7cb17bb48974b7ea9b9818a415f530fc7279a62ec5d60b

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 2b58f341098e97858652298ab929e9aee70ff4a39d67deff5c4d13e17f2db648
MD5 2e2634ce6f3e21ef55b80a4a1502bd79
BLAKE2b-256 f81796b2ef04213eda8f6029697edf1e5782466ecf5d16859111390884b8de84

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_x86_64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 575634b0e11d63496e2906aec8a53c575eeb69eefb109b83df449e9e8271eba3
MD5 9ac816fcd79c3292f536d4f564ea76e5
BLAKE2b-256 27d3e3fdaaa3c4700c6bfcce9439365fc40fa95e92e5d603076303e22e97d81a

See more details on using hashes here.

Provenance

The following attestation bundles were made for stochmat-1.0.0rc5-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on bovet-research-group/stochmat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page