Skip to main content

MWPF

Hypergraph Minimum-Weight Parity Factor Decoder for QEC

Unitary Fund

The paper is available at https://arxiv.org/abs/2508.04969.

We also provide a web page that allows people to play with some QEC codes, noise models and their decoding processes. Check it out here (https://mwpf.dev).

Hypergraph MWPF is proven to be NP-hard [1]. Our design is taking advantage of clustering technique to lower the average time complexity and reach almost-linear average time complexity at small physical error rate. Please wait for our paper for more discussion of the speed v.s. accuracy.

Color Code Example (click for YouTube video)

Installation

pip install -U mwpf_fast

Python 3.9 and newer are supported, including free-threaded Python 3.14 and 3.15+.

MWPF now supports stim simulation. You may experience high logical error rate due to some adaptor bugs prior to sinter version 1.15, so instead of using the mw_parity_factor decoder in sinter, you may want to manually import the latest MWPF decoder from the mwpf>=0.2.8 package.

pip install -U 'mwpf_fast[stim]'
from mwpf_fast import SinterMWPFFastDecoder

sinter.collect(
    tasks = ...,
    num_workers = 1,
    decoders = ["mwpf_fast"],
    custom_decoders = { "mwpf_fast": SinterMWPFFastDecoder(cluster_node_limit=50) },
)

# MWPF decoder now supports heralded error decoding in stim circuit!
#   Since the sinter.Decoder interface only gives a DEM (Detector Error Model), which doesn't include heralded error
#   information, you need to manually provide the circuit when constructing the decoder, like below
custom_decoders = { "mwpf_fast": SinterMWPFFastDecoder(cluster_node_limit=50).with_circuit(circuit) }

Background

The Most-Likely Error (MLE) decoding problem can be formulated as a MWPF problem.

Naming

We named it Minimum-Weight Parity Factor because of a concept called "parity $(g,f)$-factor" in Lovász's 1972 paper [2]. In the context of QEC, the functions $g(v)$ and $f(v)$ associates with the measured syndrome as shown above. Without ambiguity, we just call it "parity factor".

Relationship with MWPM decoder

Minimum-Weight Perfect Matching decoder is the traditional decoder for QEC. When the decoding graph is a simple graph, the MLE decoding problem can be reduced to an MWPM problem on a generated complete graph with $O(|V|^2)$ edges. Two recent works [2] and [3] improves the average time complexity to almost theoretical upper bound of $O(|V|)$ by not explicitly generating the complete graph. This motivates our idea to design an algorithm directly on the model graph, hoping to reach the same $O(|V|)$ average time complexity even if the model graph is hypergraph.

Key Idea

We try to extend the blossom algorithm that solves the MWPM problem on simple graphs. An interesting attribute of the blossom algorithm is that it deals with an exponential number of linear constraints in order to relax the integer constraints. The added linear constraints, which we refer to as "blossom constraints", are based on a very simple idea: filtering out invalid solutions. The blossom constraints simply say "any odd cluster cannot be perfectly matched internally", which is obviously true. However, this "filtering" requires an exponential number of linear constraints [5], which is impossible to generate efficiently. Thus, the algorithm must implicitly consider those exponential number of constraints without ever listing them. In fact, the blossom algorithm only keeps track of $O(|V|)$ such constraints from the exponentially many. Surprisingly, this works! Inspired by this miracle, we now have the courage to use an exponential number of linear constraints to solve MWPF.

Rigorous Math

The ILP problem above is very similar to that of the blossom algorithm, except for the more complex "blossom"definition: it's now a subgraph $S=(V_S, E_S), V_S \subseteq V, E_S \subseteq E$ instead of just a subset of vertices $S\subseteq V$ in the blossom algorithm. We have mathematically proved the equivalence between hypergraph MWPF and this ILP. In the next step, we simply relax the integer constraints.

Clearly, as a relaxation, the minimum objective value is no larger than that of the ILP. Unfortunately, we haven't been able to rigorously prove that they have the same optimal objective value, nor can we find a counter example. We leave this conjecture as is for now, and do not assume its correctness.

Conjecture: $\min\text{ILP}=\min\text{LP}$.

The dual problem is a transpose of the primal LP problem. According to the duality theorem, they have the same optimal value. The key is that each primal constraint becomes a dual variable, and each primal variable becomes a dual constraint. Clearly, for the dual problem, $y_S = 0, \forall S \in \mathcal{O}$ is a solution (despite usually not the optimal solution). In this way, we can keep track of only non-zero dual variables to implicitly considering all the exponentially many primal constraints. Since the dual LP problem becomes a maximization problem, we have the whole inequality chain as below.

If we can find a pair of feasible primal and dual solutions with the same weight, then this inequality chain collapses to an equality chain and the primal solution is proven to be optimal. Even if they are not equal, we still get a proximity bound.

In fact, MWPM decoder using the blossom algorithm fits in this framework, where the alternating tree operation guarantees that in the end the primal must be equal to the dual. Union-Find decoder and hypergraph UF decoder can also be explained by this framework, but the proximity bound is usually not singleton.

Usage

The decoding process is two steps (shown in Background)

  1. offline: construct the model graph given the QEC code and the noise model
  2. online: compute the most-likely error $\mathcal{E}\subseteq E$ given the syndrome (represented by the defect vertices $D \subseteq V$) and some dynamic weights
from mwpf_fast import HyperEdge, SolverInitializer, SolverSerialJointSingleHair, SyndromePattern

# Offline
vertex_num = 4
weighted_edges = [
    HyperEdge([0, 1], 100),  # [vertices], weight
    HyperEdge([1, 2], 100),
    HyperEdge([2, 3], 100),
    HyperEdge([0], 100),  # boundary vertex
    HyperEdge([0, 1, 2], 60),  # hyperedge
]
initializer = SolverInitializer(vertex_num, weighted_edges)
hyperion = SolverSerialJointSingleHair(initializer)

# Online
syndrome = [0, 1, 3]
hyperion.solve(SyndromePattern(syndrome))
hyperion_subgraph = hyperion.subgraph()
print(hyperion_subgraph)  # out: [3, 5], weighted 160
_, bound = hyperion.subgraph_range()
print((bound.lower, bound.upper))  # out: (Fraction(160, 1), Fraction(160, 1))

The example hyergraph is below: grey edges are weighted 100 and the purple hyperedge is weighted 60.

In constrast, if we were to solve MWPF with MWPM decoder, then we have to ignore the hyperedge $e_4$ and thus leads to suboptimal result, as shown by the following Python script using the Fusion Blossom library.

from fusion_blossom import SolverInitializer, SolverSerial, SyndromePattern

# Offline
vertex_num = 5
weighted_edges = [(0, 4, 100), (0, 1, 100), (1, 2, 100), (2, 3, 100)]
virtual_vertices = [4]
initializer = SolverInitializer(vertex_num, weighted_edges, virtual_vertices)
fusion = SolverSerial(initializer)

# Online
syndrome = [0, 1, 3]
fusion.solve(SyndromePattern(syndrome))
fusion_subgraph = fusion.subgraph()
print(fusion_subgraph)  # out: [0, 2, 3], which is weighted 300 instead of 160

Advanced Usage

When trading off accuracy and decoding time, we provide a timeout parameter for the decoder. Also, one can specify whether you want the clusters to all grow together or grow one by one. More parameters are coming as we develop the library.

config = {
    "cluster_node_limit":  50,  # how many dual variables are allowed in each cluster before falling back to UF decoder,
                                # by default infinite but setting it to 50 works for circuit-level surface code d=7
                                # for millisecond decoding. I would recommend use this option alone (without timeout) to
                                # tune between decoding speed and accuracy.
    "timeout": 3.0,  # 3 second timeout for each cluster, by default infinite (preferred)
}
hyperion = SolverSerialJointSingleHair(initializer, config)

An embedded visualization tool is coming soon.

Examples

For surface code with depolarizing noise mode $p_x =p_y=p_z = p/3$, here shows physical error rates 1%, 2% and 4% (left to right).

Surface Code Example (click for YouTube video)

For triangle color code with X errors, here shows physical error rates 1%, 2% and 4% (left to right).

Triangle Color Code Example (click for YouTube video)

For circuit-level surface code, here shows physical error rate 0.03%, 0.1% and 0.3% (left to right).

Circuit-level Surface Code Example (click for YouTube video)

Reference

[1] Berlekamp, Elwyn, Robert McEliece, and Henk Van Tilborg. "On the inherent intractability of certain coding problems (corresp.)." IEEE Transactions on Information Theory 24.3 (1978): 384-386.

[2] Lovász, László. "The factorization of graphs. II." Acta Mathematica Academiae Scientiarum Hungarica 23 (1972): 223-246.

[3] Higgott, Oscar, and Craig Gidney. "Sparse Blossom: correcting a million errors per core second with minimum-weight matching." arXiv preprint arXiv:2303.15933 (2023).

[4] Wu, Yue, and Lin Zhong. "Fusion Blossom: Fast MWPM Decoders for QEC." arXiv preprint arXiv:2305.08307 (2023).

[5] Rothvoß, Thomas. "The matching polytope has exponential extension complexity." Journal of the ACM (JACM) 64.6 (2017): 1-19.

Metadata

Release files for mwpf-fast 0.2.17

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

Source distribution (sdist)

Source distribution for mwpf-fast 0.2.17
File Size Uploaded Provenance Actions
mwpf_fast-0.2.17.tar.gz 594.9 kB With provenance Details for mwpf_fast-0.2.17.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for mwpf-fast 0.2.17
File Actions
mwpf_fast-0.2.17-cp315-abi3.abi3t-win_arm64.whl CPython 3.15 abi3, abi3t Windows ARM64 Details for mwpf_fast-0.2.17-cp315-abi3.abi3t-win_arm64.whl
mwpf_fast-0.2.17-cp315-abi3.abi3t-win_amd64.whl CPython 3.15 abi3, abi3t Windows x86-64 Details for mwpf_fast-0.2.17-cp315-abi3.abi3t-win_amd64.whl
mwpf_fast-0.2.17-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl CPython 3.15 abi3t, abi3 Linux musl 1.2+ x86-64 Details for mwpf_fast-0.2.17-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl
mwpf_fast-0.2.17-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl CPython 3.15 abi3, abi3t Linux glibc 2.28+ x86-64 Details for mwpf_fast-0.2.17-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
mwpf_fast-0.2.17-cp315-abi3.abi3t-macosx_10_15_universal2.whl CPython 3.15 abi3, abi3t macOS 10.15+ universal2 (ARM64, x86-64) Details for mwpf_fast-0.2.17-cp315-abi3.abi3t-macosx_10_15_universal2.whl
mwpf_fast-0.2.17-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details for mwpf_fast-0.2.17-cp314-cp314t-win_arm64.whl
mwpf_fast-0.2.17-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for mwpf_fast-0.2.17-cp314-cp314t-win_amd64.whl
mwpf_fast-0.2.17-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for mwpf_fast-0.2.17-cp314-cp314t-musllinux_1_2_x86_64.whl
mwpf_fast-0.2.17-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details for mwpf_fast-0.2.17-cp314-cp314t-manylinux_2_28_x86_64.whl
mwpf_fast-0.2.17-cp314-cp314t-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64) Details for mwpf_fast-0.2.17-cp314-cp314t-macosx_10_15_universal2.whl
mwpf_fast-0.2.17-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details for mwpf_fast-0.2.17-cp39-abi3-win_arm64.whl
mwpf_fast-0.2.17-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for mwpf_fast-0.2.17-cp39-abi3-win_amd64.whl
mwpf_fast-0.2.17-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details for mwpf_fast-0.2.17-cp39-abi3-musllinux_1_2_x86_64.whl
mwpf_fast-0.2.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for mwpf_fast-0.2.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
mwpf_fast-0.2.17-cp39-abi3-macosx_10_12_universal2.whl CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) Details for mwpf_fast-0.2.17-cp39-abi3-macosx_10_12_universal2.whl

Total release size: 280.1 MB

Release files / mwpf_fast-0.2.17.tar.gz

Download URL mwpf_fast-0.2.17.tar.gz
Size 594.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7b0c31d5fa4eb5ba1ad66fdffed30488f5d6ac7bce341485e842033bd899dad3
BLAKE2b-256 checksum
How to use checksums
8e155cc2994900aab429ff6c777135904269d7a83e9d9d59329a911c459b2939
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp315-abi3.abi3t-win_arm64.whl

Download URL mwpf_fast-0.2.17-cp315-abi3.abi3t-win_arm64.whl
Size 4.0 MB
Tags CPython 3.15 Windows ARM64 abi3 abi3t
SHA-256 checksum
How to use checksums
b7fa08621bdbb7928f360a14476e02ff587f8c32984cc96e2b778ff6ad5f307b
BLAKE2b-256 checksum
How to use checksums
7714b641864a0c2af7a917e2c4fd4e6b5c6bd3c1bdbf2bc7cba10bcdd11b9573
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp315-abi3.abi3t-win_amd64.whl

Download URL mwpf_fast-0.2.17-cp315-abi3.abi3t-win_amd64.whl
Size 4.1 MB
Tags CPython 3.15 Windows x86-64 abi3 abi3t
SHA-256 checksum
How to use checksums
372a6340a15cacdec064310421333604c694e7a2742b52bb63746bea126203b2
BLAKE2b-256 checksum
How to use checksums
a498c9ab58299b97b1e4d7cd2aabd325df78c4105c4e31b400001e2b4e1b000f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl

Download URL mwpf_fast-0.2.17-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl
Size 38.4 MB
Tags CPython 3.15 Linux musl 1.2+ x86-64 abi3 abi3t
SHA-256 checksum
How to use checksums
62df34c587db1c636e123fae93f7cd8616c2fee235cf7ce48dc2267425795c1a
BLAKE2b-256 checksum
How to use checksums
e05926133ef4e05b98aff59811a4c2b08115e267a87b2f66dd7a2bbcfa0dd36a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl

Download URL mwpf_fast-0.2.17-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
Size 40.5 MB
Tags CPython 3.15 Linux glibc 2.28+ x86-64 abi3 abi3t
SHA-256 checksum
How to use checksums
cf6b22911578444f25ec26ce6d10c02c3e5e98319395bba41ed7531ee22f4f42
BLAKE2b-256 checksum
How to use checksums
a035fb1799a25dd5c493e81a8167d5968d2c67277efcab32722116510c61401b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp315-abi3.abi3t-macosx_10_15_universal2.whl

Download URL mwpf_fast-0.2.17-cp315-abi3.abi3t-macosx_10_15_universal2.whl
Size 7.7 MB
Tags CPython 3.15 abi3 abi3t macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
e2ae6644710808d865a254a6fa8f2098dafc9ee6fed9d9c506a60e9ffb47e4b1
BLAKE2b-256 checksum
How to use checksums
433469bf44cc9cee68c57d7a8fefdfb18aee12ad1208ab1a777148a9111e9d5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp314-cp314t-win_arm64.whl

Download URL mwpf_fast-0.2.17-cp314-cp314t-win_arm64.whl
Size 3.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
df700f4b62af7721ee7b3de90b49aeaeacb013280b2d1b5211eb6028d93d6923
BLAKE2b-256 checksum
How to use checksums
f54fa3660be6dc3b90590983a8a6e3631587915d6627fb1b6ad16ab84c2d9296
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp314-cp314t-win_amd64.whl

Download URL mwpf_fast-0.2.17-cp314-cp314t-win_amd64.whl
Size 3.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
4b772738d69ee4302711978c0bae074359d40c61ee1575e8575b41047288bd7b
BLAKE2b-256 checksum
How to use checksums
2d9bb3560fe166f50789ecea1b225a74d0d3e3240812f3a70014bae7db94a7a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL mwpf_fast-0.2.17-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 37.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
23811e7ce0d3a47d76116b809a9d91d7cf57aec768edba8a51c27b4d04315ee0
BLAKE2b-256 checksum
How to use checksums
1ef0fdbe98e336d59a073e3fa538ea5d02631283a0163b5a92ef8a42f0172cf4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mwpf_fast-0.2.17-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 39.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0d447a8a53291d06d6aafd3851376de07a428f67fad695a834fbd81d1124acdb
BLAKE2b-256 checksum
How to use checksums
0451897d0aa9c80e7cedb5f4d5e6e1b02a67cee3a29ab72235ad6e895f7c157a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp314-cp314t-macosx_10_15_universal2.whl

Download URL mwpf_fast-0.2.17-cp314-cp314t-macosx_10_15_universal2.whl
Size 7.5 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9ea031d63015d4706de20f364677c92208afc7f0771ff25fe77ed898a1225cc2
BLAKE2b-256 checksum
How to use checksums
0accc0588185233f29e214a3354b3026338fe4ad78a161c42df966c166530434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp39-abi3-win_arm64.whl

Download URL mwpf_fast-0.2.17-cp39-abi3-win_arm64.whl
Size 3.8 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
1e9f4ce68cf1f8c0a129774d4eec2ff8bbbe255da53ad83212d7474fa08817bd
BLAKE2b-256 checksum
How to use checksums
177df5dbf82fd68ce4829b4358f4c9b3b17a3a0963e7af133f0196a250596dcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp39-abi3-win_amd64.whl

Download URL mwpf_fast-0.2.17-cp39-abi3-win_amd64.whl
Size 3.8 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
cd779201e09ac4b0315252839660fb18b97eb6afa145668f8613e65356c245d7
BLAKE2b-256 checksum
How to use checksums
448c675aa3b38538ab78759897b6499a567049c3daa7259f1b0e99570807cfb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL mwpf_fast-0.2.17-cp39-abi3-musllinux_1_2_x86_64.whl
Size 37.7 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
92a5479a7766005917a446558048785310f8c2a3293489cdf084dc16944cc164
BLAKE2b-256 checksum
How to use checksums
b77784684fce564e58ef043908aca8a7910a79e660a35f30f4ea20683abf726e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL mwpf_fast-0.2.17-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 39.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
b27305a36240142c38ccd22763d2074659638028a31c179ffa8d5cc22473e1f1
BLAKE2b-256 checksum
How to use checksums
56fa4bb15ae4274a3f7c606776d9531af730c86e572dd24f3f949b28ccb60ac6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Release files / mwpf_fast-0.2.17-cp39-abi3-macosx_10_12_universal2.whl

Download URL mwpf_fast-0.2.17-cp39-abi3-macosx_10_12_universal2.whl
Size 7.5 MB
Tags CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
487ff6cba6345bcf2282d90e37fecf76bf45cb9953e74dc174e44aba3ba54a47
BLAKE2b-256 checksum
How to use checksums
63559a4435233b27b67517d014cd3eb341ad64b2ea1efc505ca570d6246a2824
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 4, 2026.

Transparency log

Security for mwpf-fast 0.2.17

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.

Full provenance

All 16 files in this release have been uploaded with provenance metadata.

Select from 16 files

Attestation for mwpf_fast-0.2.17.tar.gz

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 Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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