mpatch for Python
mpatch applies diffs by finding where they belong in the code, not by trusting line numbers. When the context in a diff doesn't match the file exactly, it uses fuzzy matching to find the most similar location and applies the change there. This package is the Python interface to the Rust library. The command-line tool and the Rust docs are in the main repository.
It was built for diffs written by LLMs (ChatGPT, Gemini, Claude), which often get line numbers wrong, drop lines from the context, or describe code that has changed since they last saw it.
mpatch is built with mpatch. Changes to its own src/lib.rs (over 15,000 lines) and test file (over 16,000 lines) are applied with it.
Installation
pip install mpatch
Wheels are published for Windows, macOS, and Linux (including Alpine) on x64 and ARM, for CPython 3.8 and later and free-threaded CPython 3.14. On other platforms, pip builds from source, which needs a Rust toolchain.
This installs the library only. For the mpatch command, see Installation in the main repository.
Quick Start
Your file has a comment that the AI never saw, and its diff leaves it out:
import mpatch
original = """\
def greet(name):
greeting = "Hello"
# Forgettable comment
print(f"{greeting}, {name}!")
print(f"Goodbye, {name}!")
"""
reply = """\
Here's the change:
```diff
--- a/greet.py
+++ b/greet.py
@@ -1,4 +1,4 @@
def greet(name):
- greeting = "Hello"
+ greeting = "Hi"
print(f"{greeting}, {name}!")
- print(f"Goodbye, {name}!")
+ print(f"See you, {name}!")
```
"""
print(mpatch.patch_content(reply, original=original))
def greet(name):
greeting = "Hi"
# Forgettable comment
print(f"{greeting}, {name}!")
print(f"See you, {name}!")
git apply and patch both reject this diff, because the comment breaks its context. mpatch applies both changes and keeps the comment. You can pass the whole chat reply: the prose around the diff is ignored.
patch_content raises mpatch.ApplyError if a hunk (one @@ block of a diff) can't be placed, and mpatch.ParseError if the text contains no patch.
Will it change the wrong code?
mpatch only applies a hunk where it is confident the hunk belongs:
- An exact match is tried first. A fuzzy match is used only when there is none, and the location must be at least 70% similar (change this with
fuzz_factor). - If the same code appears in more than one place, the diff's line numbers pick the nearest. If they can't decide, the hunk fails instead of guessing.
- A hunk that fails changes nothing, and the result tells you the closest location found and how similar it was.
dry_run=Truereturns the changes without writing them,atomic=Truewrites nothing unless every hunk applies, and a patch that points outside the target directory raisesmpatch.PathTraversalError.
Review the result as you would any AI edit.
Supported Formats
The format is detected automatically, and one input can hold patches for several files.
- Markdown code blocks, such as a chat reply with
```diffblocks. Prose around them is ignored. - Unified diffs from
git diffordiff -u. Each file's hunks need the--- a/<path>and+++ b/<path>lines above them. - Aider search/replace blocks (
<<<<<<< SEARCH,=======,>>>>>>> REPLACE), with the file path just above the block. Placeholders like# ... existing code ...stand for the code they skip. - Conflict markers (
<<<<,====,>>>>). These don't name a file, so use them withpatch_content.
Applying to a Directory
from pathlib import Path
import mpatch
# A small project to patch
project = Path("my_project")
project.mkdir(exist_ok=True)
(project / "config.py").write_text("DEBUG = True\nPORT = 8000\n")
diff = """\
--- a/config.py
+++ b/config.py
@@ -1,2 +1,2 @@
-DEBUG = True
+DEBUG = False
PORT = 8000
"""
if mpatch.apply_directory(diff, project, atomic=True):
print("Every hunk applied")
With atomic=True, apply_directory writes nothing unless every hunk of every patch applies, and returns True only if they all did. Without it, the hunks that apply are written even if others fail, and it returns True unless a file couldn't be read or written, so check for failed hunks as shown below. Add dry_run=True to check a diff without changing any files.
Handling Failures
To find out what failed, apply the patches one at a time. Each failure says which hunk failed and why, which a coding agent can send back to the model to ask for a corrected diff.
from pathlib import Path
import mpatch
project = Path("my_project")
project.mkdir(exist_ok=True)
(project / "app.py").write_text("x = 1\ny = 2\n")
reply = """\
--- a/app.py
+++ b/app.py
@@ -1,2 +1,2 @@
totally = different
-content = here
+content = there
"""
for patch in mpatch.parse_auto(reply):
result = patch.apply_to_file(project)
for failure in result.report.failures:
print(f"{patch.file_path}, hunk {failure.hunk_index}: {failure.reason}")
app.py, hunk 1: Best fuzzy match at line 1 (score: 0.495) was below threshold (0.700)
failure.error_type names the reason, such as "ContextNotFound", "FuzzyMatchBelowThreshold", or "AmbiguousExactMatch". Fuzzy failures also carry best_score, threshold, and the near-miss location in location_start and location_length.
More
parse_autoandparse_single_patchreturnPatchobjects, which you can index and slice by hunk and reverse with~patch.merge_patchescombines patches that target the same file.create_unified_diffandPatch.from_textsmake a diff from two strings.merge_three_waydoes a line-level three-way merge with conflict markers.
Every function has type hints and a docstring, so your editor and help(mpatch) show the details.
Exceptions
All exceptions derive from mpatch.MpatchError:
mpatch.ParseError: the input contains no patch, or a patch is malformed.mpatch.ApplyError:patch_contentcouldn't apply a hunk, or a file couldn't be read or written.mpatch.PathTraversalError: a patch points outside the target directory. It's a subclass ofApplyError.
Threads
mpatch releases the GIL while it works, so you can apply patches from several threads, or from asyncio with asyncio.to_thread.
License
MIT License. See LICENSE.
Metadata
Release files for mpatch 1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mpatch-1.8.1.tar.gz | 303.1 kB | With provenance | Details |
Built distributions (wheels)
Total release size: 17.8 MB
Release files / mpatch-1.8.1.tar.gz
| Download URL | mpatch-1.8.1.tar.gz |
|---|---|
| Size | 303.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0132d2f4faf73d6a472b5b30ebded43e4825aa0c5067737e22f342362e2bb7a
|
|
BLAKE2b-256 checksum How to use checksums |
aa8f1354b3c2a3e39a6b5aa21d43bf3fa7271d65bb5ad0c0d6080dd8c32e44ac
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-win_arm64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-win_arm64.whl |
|---|---|
| Size | 720.8 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows ARM64 |
|
SHA-256 checksum How to use checksums |
f51436c9bf2670d38175ea9b7b8702a18247f1e484d6d4972392d71315b57793
|
|
BLAKE2b-256 checksum How to use checksums |
8f867f3be768501c7e40dc8d7b0d096fad6b07524997247a1a37e836f8fdcd37
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-win_amd64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 790.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
90e85d9bf28005a5aa14d58a5e236e61d2047e00775ed05c7adae44ddb67029b
|
|
BLAKE2b-256 checksum How to use checksums |
3fc73ae7f06fe37548c9edcb7c72c35e2c47f46fb0941eb03f52007e620a79fd
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
957b4c6de2830fc0166b992255715acf2e81f1fb5496273d75da7a0525a7b53e
|
|
BLAKE2b-256 checksum How to use checksums |
03f2a14156cd780f0e10797e9ced3ccd6103ad984e7183ee2fad9c8b554c8449
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
0065f47a70862fc0bad4fcff34c05a2553d9484cc05e5f003e17b4bd3b59579c
|
|
BLAKE2b-256 checksum How to use checksums |
0cc45bf1ab375198ea296a81e305590b6a2bf34cb7eb0221811627cbf3ccdcc3
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 921.8 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
403cdbb5ad642f047fc25ed94764be6da37b6a301bf72158b928e890cded190f
|
|
BLAKE2b-256 checksum How to use checksums |
4b9bdea05d187a77b812a4b80acad3c88d73ae586e379fddcf30f5202373287f
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 830.5 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
b43d755bb3d54415019598fb1d9b95956b9967b3c863399af1d0ad152a40ac6d
|
|
BLAKE2b-256 checksum How to use checksums |
563def8d04435f588d64cfd20eb105f2576bb26198d82eaa067a6144af794825
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 780.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
981e642fb9ee7dc7c47c76d2d988f86d72220e27b793acb09d12c048c076ff03
|
|
BLAKE2b-256 checksum How to use checksums |
e145be78f302b38acb91cd324a446d47d7cf33b00956b35707bad2ff87ebe862
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 877.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
ee3ee521ff14006ad6802f13e4183884985102055e1791511f09ffe085feb1ed
|
|
BLAKE2b-256 checksum How to use checksums |
81c0b2c9a661a8fb255c0296cd6a0f9f08764d6a17cc87f950fc3dad60945496
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | mpatch-1.8.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a9dd3a98b4fe3f56af0e564623f889afa66da070c9fde375444971f050e4a70e
|
|
BLAKE2b-256 checksum How to use checksums |
0a73870ec57401674482142f4b38eaef52115d066fdc15bc99c6f28c8238b330
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-win_arm64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-win_arm64.whl |
|---|---|
| Size | 726.7 kB |
| Tags | CPython 3.8 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
3a35532b0c85052197dc93b48d34ff536b22d5ccda2bbed84eba95afd4d88e99
|
|
BLAKE2b-256 checksum How to use checksums |
53d92d654f950c90eca9e58e4fa57157363dbb77df8d52d2934f842c15b1144b
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-win_amd64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 795.3 kB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
16eae1bf446a652039494fe0617e3d568dfe7a0ff30d19093f6e696cfcec88e7
|
|
BLAKE2b-256 checksum How to use checksums |
7516d74085efa7c91d079a8298d41fc62e7a96736e2f519936cc1ab404db3e26
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-musllinux_1_2_x86_64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
aae917fc6ba00ca52a3690c3e0b7353d57248c047a87a727559b886c1c67b33f
|
|
BLAKE2b-256 checksum How to use checksums |
4aded391af7d3bcc667397a378c04b79e065944defe2ac56b3358b532561f656
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-musllinux_1_2_aarch64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
bc5bc1a09fcdedbe903faed24b2ff7e7f65f167348f6ef031607b4ffeb261f6f
|
|
BLAKE2b-256 checksum How to use checksums |
c409ac81b13425d7075bbfaab44171ddefb36993c8a11d7e887f3a1cf29a18a6
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 929.6 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
7c1f95c7e9a82c9f32789968f05813950c2db80c59c73d8c6a860e32db566f42
|
|
BLAKE2b-256 checksum How to use checksums |
3ba8105933206b0e1cf0041e771acf96c197e5c47d0a5684b258715c8fe25127
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 835.7 kB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
88fa8cd5bade8eaa90f626df1da39ba03a050bc988d7580b00895f45b60ab4ff
|
|
BLAKE2b-256 checksum How to use checksums |
e7754a72d864dc8cd96646458d86ac9369acf5135310b4f0a213514d1a7e037c
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 787.1 kB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6dae518c3cce9d8594dd3f5aef4f834ebb1409df49696d7ec30848497cda4949
|
|
BLAKE2b-256 checksum How to use checksums |
7e8d9f09dd25aea143b4487d7155d517b9aba1502233b69487c5bbe7de26fe9f
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-macosx_10_12_x86_64.whl
| Download URL | mpatch-1.8.1-cp38-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 884.8 kB |
| Tags | CPython 3.8 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
59d1c848903d175c41aab3dfcd66c9068cf2b19ef98402502ec0cfec9be517ed
|
|
BLAKE2b-256 checksum How to use checksums |
bc7b8c1c044a2c03c66fbd359e4ad36464db36f0f3a69c0120b34464a2ccafe1
|
| 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 Oct 24, 2026.
Transparency logRelease files / mpatch-1.8.1-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
| Download URL | mpatch-1.8.1-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.8 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4aff57f46533f1b71ce197ca3d69c16244918bbeef10175e23c7a303f83b7d45
|
|
BLAKE2b-256 checksum How to use checksums |
2ec409207cba56da26be505bb440ef29d8aae284a90e57c1117ae171327b635e
|
| 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 Oct 24, 2026.
Transparency logSecurity for mpatch 1.8.1
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 19 files in this release have been uploaded with provenance metadata.
Attestation for mpatch-1.8.1.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 Oct 24, 2026.
Transparency logA 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.