Skip to main content

Mpatch (Python)

PyPI version Python versions Type Hints License: MIT

mpatch is a blazing-fast, context-aware patching library made with Rust. It applies diffs using fuzzy matching, making it the perfect tool for processing patches generated by LLMs (ChatGPT, Claude, Gemini, etc.) that often hallucinate line numbers or drift in context.

Standard patch or git apply fails if the target file has been modified even slightly. mpatch looks for the surrounding lines, dynamically adjusts indentation, and applies the change safely.

🦀 Looking for the CLI tool or Rust library? This is the documentation for the Python bindings. Check out the main mpatch repository and CLI documentation.


💡 The Problem vs. The Solution

When an AI tries to edit a file that has been modified locally since the AI last saw it, standard tools fail.

Original File AI-Generated Patch Standard patch mpatch
def main():
# Updated comment
print("Hello")
 def main():
- print("Hello")
+ print("World")
❌ Failed
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED
def main():
# Updated comment
print("World")

✨ Features

  • 🧠 Fuzzy Matching: Resilient to stale context, whitespace changes, and minor code drift.
  • 🔒 Atomic (All-or-Nothing) Mode: Pass atomic=True to only write changes to disk if all patches and hunks succeed cleanly.
  • 🤖 Format Independent: Automatically recognizes Unified Diffs, Markdown code blocks (```diff), Aider Search/Replace blocks (<<<<<<< ORIGINAL ======= >>>>>>> UPDATED and variants), and Conflict Markers (<<<< ==== >>>>).
  • 🔍 Wildcard & Ellipsis Support: Supports ... and comment-wrapped ellipsis lines (e.g. // ... existing code ...) in search/replace blocks, preserving unchanged code gaps.
  • 🔀 Three-Way Line Merge: Built-in line-level 3-way merge via mpatch.merge_three_way with Diff3 conflict markers.
  • 💡 Sub-Line Word Diffs: Highlighting word-level additions/deletions via mpatch.format_inline_diff.
  • ✨ Smart Indentation: Automatically translates tabs/spaces and aligns injected code to match the target file perfectly.
  • 🛡️ Secure: Built-in protection against directory traversal attacks (e.g., --- a/../../../etc/passwd).
  • ⚡ Blazing Fast & Concurrent: Written in Rust. It heavily optimizes the diffing algorithms and releases the GIL during patching, allowing true multithreading in Python.
  • 🐍 Pythonic & Typed: Supports slice indexing, unaries (~patch to invert), rich error handling, and ships with comprehensive .pyi stubs.

📦 Installation

Install directly from PyPI (pre-compiled wheels are provided for macOS, Linux, and Windows):

pip install mpatch

🚀 Quick Start

The simplest way to use mpatch is the high-level patch_content function. It takes a diff (even one wrapped in Markdown) and applies it to a string.

import mpatch

original_code = """\
def greet():
    print("Hello, old friend")
"""

# Input can be a raw diff, or a diff wrapped in Markdown (common chat output)
diff = """\
Here is the fix:
```diff
--- a/greet.py
+++ b/greet.py
@@ -1,2 +1,2 @@
 def greet():
-    print("Hello, old friend")
+    print("Hello, new world!")
```
"""

# Apply the patch in-memory!
new_code = mpatch.patch_content(diff, original=original_code)

print(new_code)
# Output:
# def greet():
#     print("Hello, new world!")

🛠️ Advanced API Tour

For tool builders and Agent frameworks, mpatch provides a rich Object-Oriented API for parsing, inspecting, and applying patches.

1. Parsing Diffs

You can parse a diff string into a list of Patch objects. mpatch automatically detects the format.

import mpatch

patches = mpatch.parse_auto(diff_string)

for patch in patches:
    print(f"Target file: {patch.file_path}")
    print(f"Number of hunks: {len(patch)}")

    if patch.is_creation:
        print("This patch creates a new file.")

2. Inspecting Hunks

Patches are composed of Hunk objects. You can slice, index, and inspect the exact lines added or removed.

patch = mpatch.parse_auto(diff_string)[0]

for i, hunk in enumerate(patch):
    print(f"Hunk {i + 1} changes:")
    print(f"  Removed: {hunk.removed_lines}")
    print(f"  Added:   {hunk.added_lines}")
    print(f"  Required match span: {hunk.required_match_span} lines")

To parse a diff that is expected to contain exactly one patch:

try:
    patch = mpatch.parse_single_patch(single_diff_str)
    print(f"Parsed single patch targeting: {patch.file_path}")
except mpatch.ParseError as e:
    print(f"Expected single patch, but failed: {e}")

3. Applying to the Filesystem (Batch Processing)

Apply patches directly to a directory on disk. mpatch handles file reading, writing, creation, and deletion automatically.

from pathlib import Path
import mpatch

diff = """... your diff here ..."""
target_directory = Path("./my_project")

# Apply all patches in a diff directly to the filesystem
success = mpatch.apply_directory(diff, target_directory)

# Or ensure all-or-nothing atomicity (no disk changes if any hunk fails):
success = mpatch.apply_directory(diff, target_directory, atomic=True)

if success:
    print("All files updated successfully!")

For granular control over multiple patches, use apply_patches_to_dir:

patches = mpatch.parse_auto(diff)
batch_result = mpatch.apply_patches_to_dir(patches, target_directory)

if not batch_result.all_succeeded:
    # Inspect hard failures (e.g., IO errors, Permission denied, Path traversal)
    for path, error_msg in batch_result.hard_failures:
        print(f"Critical error on {path}: {error_msg}")

if batch_result.has_failures:
    print("One or more patches or hunks failed to apply cleanly.")
    # Dedicated atomic function also available: mpatch.apply_patches_to_dir_atomic(...)

4. Detailed Reporting & Error Handling

When applying a specific Patch, you receive a rich PatchResult or InMemoryResult detailing exactly what happened to every hunk.

patch = mpatch.parse_auto(diff)[0]
result = patch.apply_to_file("./my_project")

if result.report.has_failures:
    print(f"Patch partially failed. {result.report.failure_count} hunks failed.")

    for failure in result.report.failures:
        print(f"Hunk {failure.hunk_index} failed due to: {failure.error_type}")

        # If it was a fuzzy match that didn't meet the threshold:
        if failure.error_type == "FuzzyMatchBelowThreshold":
            print(f"Best score was {failure.best_score}, needed {failure.threshold}")
            if (
                failure.location_start is not None
                and failure.location_length is not None
            ):
                print(
                    f"Near-miss candidate located at lines {failure.location_start + 1}..{failure.location_start + failure.location_length}"
                )

5. Dry Runs & Fuzz Factor

Want to see what would happen without modifying your files? Use dry_run=True. You can also tweak the fuzz_factor (0.0 to 1.0, default is 0.7).

result = patch.apply_to_file(
    "./my_project",
    fuzz_factor=0.5,  # Lower is more lenient, higher is stricter (0.0 is exact match only)
    dry_run=True,  # Generate a diff without writing to disk
)

if result.diff:
    print("Proposed changes:")
    print(result.diff)

6. Reversing Patches

You can reverse a patch (swap additions and deletions) easily using Python's bitwise NOT operator (~) or the invert() method.

patch = mpatch.parse_auto(diff)[0]

# Invert the patch
reversed_patch = ~patch

# Apply the reversed patch to undo changes
reversed_patch.apply_to_file("./my_project")

7. Deduplicating and Merging Patches

Consolidate multiple patches or blocks targeting the same file into unified Patch objects:

import mpatch

# Combine all patches targeting the same file path
consolidated = mpatch.merge_patches(patches)

# Or merge an individual patch into another:
patch1.merge(patch2)

8. Creating Diffs Programmatically

Need to generate a unified diff between two strings? You can generate the raw string representation or get a Patch object directly.

old_text = "apple\nbanana\npineapple\n"
new_text = "apple\norange\npineapple\n"

# 1. Generate a raw unified diff string
diff_str = mpatch.create_unified_diff("fruits.txt", old_text, new_text)
print(diff_str)
# --- a/fruits.txt
# +++ b/fruits.txt
# @@ -1,3 +1,3 @@
#  apple
# -banana
# +orange
#  pineapple

# 2. Generate a Patch object directly for programmatic manipulation
patch = mpatch.Patch.from_texts("fruits.txt", old_text, new_text)
print(patch[0].removed_lines)  # ['banana']

9. Aider Search/Replace Blocks with Wildcards

Apply Aider-style search/replace blocks directly. The parser automatically detects file paths and supports wildcard ellipsis lines (...) to preserve intermediate code gaps.

import mpatch

original_code = """\
def process_data(data):
    validate(data)
    # Step 1: Normalize
    normalized = [x.strip() for x in data]
    # Step 2: Transform
    transformed = [x.upper() for x in normalized]
    # Step 3: Output
    return transformed
"""

diff = """\
process.py
<<<<<<< SEARCH
def process_data(data):
    ...
    # Step 2: Transform
    transformed = [x.upper() for x in normalized]
=======
def process_data(data):
    ...
    # Step 2: Transform
    transformed = [x.lower() for x in normalized]
>>>>>>> REPLACE
"""

result = mpatch.patch_content(diff, original=original_code)
# Normalization and output steps are preserved; Step 2 is updated!

10. Three-Way Line Merging

Perform line-level 3-way merges between an ancestor (base), local code (ours), and incoming changes (theirs):

import mpatch

base = "Apples\nBananas\nCherries\nDates\n"
ours = "Apples\nBlueberries\nCherries\nDates\n"
theirs = "Apples\nBananas\nCherries\nDragonfruit\n"

merged, is_conflicted = mpatch.merge_three_way(base, ours, theirs)
assert not is_conflicted
print(merged)
# Apples
# Blueberries
# Cherries
# Dragonfruit

# If there is a conflict, standard Diff3 markers are inserted:
conflict_merged, is_conflicted = mpatch.merge_three_way(
    "val = 1\n",
    "val = 2\n",
    "val = 3\n",
    labels=("base", "ours", "theirs"),
)
assert is_conflicted
print(conflict_merged)
# <<<<<<< ours
# val = 2
# ||||||| base
# val = 1
# =======
# val = 3
# >>>>>>> theirs

11. Sub-Line Word Diff Visualization

Format near-miss comparisons or word-level diffs with highlighted changes:

import mpatch

expected = ["def calculate(val: int, factor: float = 1.0) -> float:"]
actual = ["def calculate(val: int, factor: float = 2.5) -> float:"]

diff_view = mpatch.format_inline_diff(expected, actual)
print(diff_view)

12. Format Detection

Inspect the format of an incoming patch string before processing:

import mpatch

fmt = mpatch.detect_patch(diff_string)
# Returns: 'Markdown', 'Unified', 'Aider', 'Conflict', or 'Unknown'

13. Path Validation & Missing Target Suggestions

Suggest close matching files in the target directory when a patch specifies an unknown or misspelled file path:

import mpatch
from pathlib import Path

# Suggest close matches in ./src for a misspelled filename:
suggestions = mpatch.suggest_close_file_paths("calculate.rs", Path("./src"), limit=3)
for candidate in suggestions:
    print(f"Did you mean: {candidate}?")

# Validate that a target path remains safely inside the base directory:
safe_path = mpatch.ensure_path_is_safe("./src", "utils/helpers.py")

14. Wildcard Ellipsis & Path Utilities

Check for wildcard ellipsis lines or extract file paths from conversational prose:

import mpatch

# Ellipsis checking:
assert mpatch.is_ellipsis_line("// ... existing code ...") is True
assert mpatch.is_ellipsis_line("const copy = [...items];") is False

# Conversational path extraction:
path = mpatch.extract_file_path_from_line("In `src/server.ts`, replace the handler:")
assert path is not None and path.as_posix() == "src/server.ts"
assert mpatch.is_plausible_file_path("src/server.ts") is True

🚨 Exceptions

mpatch provides specific Python exceptions so you can handle failures gracefully:

  • mpatch.MpatchError: Base exception for all mpatch errors.
  • mpatch.ParseError: Raised when the diff format is malformed or invalid.
  • mpatch.ApplyError: Raised during strict patch application when a hunk fails.
  • mpatch.PathTraversalError: Raised when a patch attempts to modify files outside the target directory (e.g., ../../../etc/passwd).
try:
    mpatch.apply_patch_to_file(malicious_patch, "./src")
except mpatch.PathTraversalError as e:
    print(f"Security blocked path traversal: {e}")

📄 License

This project is licensed under the MIT License.

Metadata

Release files for mpatch 1.7.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 mpatch 1.7.0
File Size Uploaded
mpatch-1.7.0.tar.gz 288.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for mpatch 1.7.0
File
mpatch-1.7.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
mpatch-1.7.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
mpatch-1.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
mpatch-1.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
mpatch-1.7.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
mpatch-1.7.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
mpatch-1.7.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
mpatch-1.7.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
mpatch-1.7.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
mpatch-1.7.0-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details
mpatch-1.7.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
mpatch-1.7.0-cp38-abi3-musllinux_1_2_x86_64.whl CPython 3.8 abi3 Linux musl 1.2+ x86-64 Details
mpatch-1.7.0-cp38-abi3-musllinux_1_2_aarch64.whl CPython 3.8 abi3 Linux musl 1.2+ ARM64 Details
mpatch-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
mpatch-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
mpatch-1.7.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details
mpatch-1.7.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details
mpatch-1.7.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.8 abi3 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 17.2 MB

Release files / mpatch-1.7.0.tar.gz

Download URL mpatch-1.7.0.tar.gz
Size 288.6 kB
Tags Source
SHA-256 checksum
How to use checksums
063c5e7da6d02be408e9bb8d61c969597ff29fa75d8720e1c9b5c4a8eff344a9
BLAKE2b-256 checksum
How to use checksums
5ac0f1f20424dc1e27d3ee3733afb4a2b3ad0c1fb12b8a556aa20572c5b8a866
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-win_arm64.whl

Download URL mpatch-1.7.0-cp314-cp314t-win_arm64.whl
Size 691.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
4b6f612ed81ffea0b1fd40c7183652cb304a58087c750a51aa4a211e2ea3585a
BLAKE2b-256 checksum
How to use checksums
d02aee8fbefdfd4cd243806f0e1eacb743945a522cd07d4dca1417ef4c59d9dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-win_amd64.whl

Download URL mpatch-1.7.0-cp314-cp314t-win_amd64.whl
Size 748.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
54a4e9ea8377a6bf6e7fa805cc1389a2fa172c826f72bc31aa47118199998fd6
BLAKE2b-256 checksum
How to use checksums
98fdd4061395b321ff657fbd006c794dd57b0c9cf586d9ab12fa7bc80348d9f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL mpatch-1.7.0-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
bab28147b454a4f2ad924ff0f0e605eb562ee1885359b5cab403e0f8e9b43a3e
BLAKE2b-256 checksum
How to use checksums
d737cf7a3e20c8ae57b11de07df1ff413f35dcfc49d065c68bc8dfeba484681e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL mpatch-1.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 983.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
10b34e97820a08920c4c7e91ec06485e1fabc334bb408f53f896d1d79cf5f59b
BLAKE2b-256 checksum
How to use checksums
84e9dd1be5ca44201b35e9814531c9db846f1de2a09add475ed0dd92fd70ae87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mpatch-1.7.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 893.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a31154c34e8903ea2548881f6884a62dbb9d9fd77697f8d0c0c8cb37a230c217
BLAKE2b-256 checksum
How to use checksums
b7e8399b535d7dd9d74fd15b12bf8d6ef97eb5e5d655f913b9741a2188c4bfb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mpatch-1.7.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 804.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8835532ab4233d2692b01f1db0f7fde0f4a138af75f404b62c09f2feda56b692
BLAKE2b-256 checksum
How to use checksums
3c7e2805e0f51963b8fe106c66f10b7ce2603b500c9378ab9f4d5a1930762568
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mpatch-1.7.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 756.5 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0339019793503f547dd4ce0c70fb2037e798528ffed54f0debd73f2e3505c843
BLAKE2b-256 checksum
How to use checksums
83979b714887f962add277a1f7382e6fbd14fe53616300252500397ab791f2e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mpatch-1.7.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 850.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7a76a3a4a5d0d14c6ee3d4bbb0a110feca87df61a2dd78478104b9a8bd5ebbc4
BLAKE2b-256 checksum
How to use checksums
2d005b8b428346effaa0d2494d2b838379e0b9cd0aeb792a35b12276946e5e82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mpatch-1.7.0-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
3339b3e7d17512dd6884fefba2f4b4c824ffc45a273e56f818b7a7ddcfa17c2c
BLAKE2b-256 checksum
How to use checksums
b4aecc672aec9b6c6779c199d258e65a9e4fb43cc96c0d0f0f8cbc704f6e644b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-win_arm64.whl

Download URL mpatch-1.7.0-cp38-abi3-win_arm64.whl
Size 698.3 kB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
1b06481d4ce836694d9777089a4f67b7e459248633ba16f4469926e608b40130
BLAKE2b-256 checksum
How to use checksums
93f3d8200be70241aad0f3374903ecf5ca1b968443128f3d5bf0f6cad9d2defb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-win_amd64.whl

Download URL mpatch-1.7.0-cp38-abi3-win_amd64.whl
Size 752.7 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1bc959b2402936f1cfdd5a7d5b1817b1e96ad7b9708794b57080c5b7de67312c
BLAKE2b-256 checksum
How to use checksums
544df18986c59116d38662b8d4a8c0752d79acfcdf3b91ce8ccf2d3365acc8a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-musllinux_1_2_x86_64.whl

Download URL mpatch-1.7.0-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
3210dc701345a9a59b5c53e8e447e3c961953dd64a870cd34dca03eb86d6b3f1
BLAKE2b-256 checksum
How to use checksums
1dd4c20e336849cfbb3a16317f4e1662b4ce4b88f43eeb98465a863204b60422
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-musllinux_1_2_aarch64.whl

Download URL mpatch-1.7.0-cp38-abi3-musllinux_1_2_aarch64.whl
Size 990.1 kB
Tags CPython 3.8 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
9739983a2c89b5b964d11bc761427af49aecd500e312822bb127dbda00f4a859
BLAKE2b-256 checksum
How to use checksums
64ae58273dab957aa9f53a56a9114010040317dd5c1088ec926c6541608a2a80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mpatch-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 900.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
195c5a4d4eb761b21a41546a5d4c290917ea4c8865926d8b7b59b81a27345292
BLAKE2b-256 checksum
How to use checksums
05b47bf5015ed92eea9652a2a1c8fc6086d4339cf2cdca709f153562295b391e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mpatch-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 811.6 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
3554e99cb777d29dc571d738fe9dc69a49d5de21ce6cc69ca845f969e4a2d8d6
BLAKE2b-256 checksum
How to use checksums
16cfee873a1f8ee22dc0fb3f44120624d6e980544eab008eaa4c4e7e35f2cae3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL mpatch-1.7.0-cp38-abi3-macosx_11_0_arm64.whl
Size 763.2 kB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b45bd8c9ea5d49f80651f6acfcb30c56c5ec08dea56733552b4a5cff5dcbd3fd
BLAKE2b-256 checksum
How to use checksums
64ef7c87d871be5c33e397d9bae18f476e5e6b7d0fa9a16d5eda1bcc2f9fda9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL mpatch-1.7.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 858.8 kB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
be6bfbf512df8408773d834b711ec5ba7ff714b06f379ac8c995311b5441bf85
BLAKE2b-256 checksum
How to use checksums
d6f8b94c4ff48315b126af9293950023e5c078ed0a305279e7d1ec65ba75a3ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / mpatch-1.7.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mpatch-1.7.0-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
fc6800225509c8bb8cb5181bd72f6991bfae10e6262865104369671112cf66b7
BLAKE2b-256 checksum
How to use checksums
a4c9abd13d9c100c0c4f9def888daa83feb83d4b632a10f99cd38569dcb98e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.0 This release

19 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