Skip to main content

jubarte-redlines (Python)

Lossless DOCX redline engine: compare two Word documents into a tracked-changes document that opens cleanly in Microsoft Word; list, accept, or reject revisions; render DOCX to PDF.

Python bindings (PyO3 + maturin) for the Rust jubarte-redlines engine. Pure compute, no Word/LibreOffice dependency, no network, no temp files — documents go in and come out as bytes (whole DOCX/PDF packages), revision metadata comes back as parsed records (get_revisions → list[dict], get_revisions_json → JSON string), and the GIL is released while the engine runs.

Install

pip install jubarte-redlines
# or: uv add jubarte-redlines

Prebuilt wheels are abi3 (one wheel per platform, CPython ≥ 3.10).

Usage

from pathlib import Path
from jubarte_redlines import (
    compare_documents,
    get_revisions,
    accept_revisions,
    reject_revisions,
    docx_to_pdf,
)

original = Path("original.docx").read_bytes()
modified = Path("modified.docx").read_bytes()

# Word-mode compare → tracked-changes DOCX (w:ins / w:del)
redline = compare_documents(original, modified, author="Reviewer")
Path("redline.docx").write_bytes(redline)

# List revisions (same shape as the CLI `jubarte revisions --json`)
for rev in get_revisions(redline):
    print(rev["type"], rev["author"], repr(rev.get("text")))

# Accept / reject every tracked revision, package-wide
clean = accept_revisions(redline)   # ≙ modified content
base = reject_revisions(redline)    # ≙ original content

# Render to PDF (Word-style layout)
Path("redline.pdf").write_bytes(docx_to_pdf(redline))

compare_documents(original, modified, author="jubarte", date=None) stamps revisions with a fixed epoch date by default so output is deterministic; pass an ISO-8601 date to override. Errors raise jubarte_redlines.JubarteError.

Also available as

License

AGPL-3.0-only © Jandira Technologies, LLC

Metadata

Release files for jubarte-redlines 0.9.2

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

Source distribution (sdist)

Source distribution for jubarte-redlines 0.9.2
File Size Uploaded
jubarte_redlines-0.9.2.tar.gz 5.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for jubarte-redlines 0.9.2
File
jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_x86_64.whl CPython 3.10 abi3 Linux glibc 2.34+ x86-64 Details
jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_aarch64.whl CPython 3.10 abi3 Linux glibc 2.34+ ARM64 Details
jubarte_redlines-0.9.2-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
jubarte_redlines-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 34.5 MB

Release files / jubarte_redlines-0.9.2.tar.gz

Download URL jubarte_redlines-0.9.2.tar.gz
Size 5.1 MB
Tags Source
SHA-256 checksum
How to use checksums
b42adbf8bfce8cfa92f654655b4313dfefb2a3e75ab8c966437734d1c084c151
BLAKE2b-256 checksum
How to use checksums
bf12ad29052cb99b97b5efd911c7925607b3caae647ab33e2eb3d1815158d7ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_x86_64.whl

Download URL jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_x86_64.whl
Size 7.5 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
332d2cba025ea595cef11a8e6000c0df79d7622304d18ca18e9c2ae98648a159
BLAKE2b-256 checksum
How to use checksums
5870975ded0c8b78aa588ba84532f7eb22cfbc3f8aeb4b5b4f1144dd575e671a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_aarch64.whl

Download URL jubarte_redlines-0.9.2-cp310-abi3-manylinux_2_34_aarch64.whl
Size 7.3 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64 abi3
SHA-256 checksum
How to use checksums
af968d7b0593bbdec936000b80f6a3536c8d60be3ab025c98a5adc196a2e4e60
BLAKE2b-256 checksum
How to use checksums
260a1bb00bc2eae6c2a91087492253598a5dbd1ab30f04dab631e1fef3be2cd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jubarte_redlines-0.9.2-cp310-abi3-macosx_11_0_arm64.whl

Download URL jubarte_redlines-0.9.2-cp310-abi3-macosx_11_0_arm64.whl
Size 7.1 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
61127243eb70f1858d46a6466e013b9457b63c2accfb168728355797cc67e7d9
BLAKE2b-256 checksum
How to use checksums
1e660a1a11e2def39e63780ba3a8a8fbd2f5018a1fb398b2c5c268903bcc9821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jubarte_redlines-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl

Download URL jubarte_redlines-0.9.2-cp310-abi3-macosx_10_12_x86_64.whl
Size 7.4 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3e771cbc324a027b36d5eb04e1dbc9f934b346046e2715957323332a5683c86f
BLAKE2b-256 checksum
How to use checksums
16b0f907efa1d5f6ab4f23144c8dbf16c58bb72a1691d73fd81c543ed29a66b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.12.0

8 release files

0.10.1

5 release files

0.10.0

5 release files

0.9.3

5 release files

This release

0.9.2 This release

5 release files

0.7.1

5 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