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.3

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.3
File Size Uploaded
jubarte_redlines-0.9.3.tar.gz 5.3 MB Details

Built distributions (wheels)

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

Total release size: 35.8 MB

Release files / jubarte_redlines-0.9.3.tar.gz

Download URL jubarte_redlines-0.9.3.tar.gz
Size 5.3 MB
Tags Source
SHA-256 checksum
How to use checksums
d010464b8c78d30478378d8a6ab73f29d19a979f6d7b2347e4361ad58f75939d
BLAKE2b-256 checksum
How to use checksums
7d4e6bbf732dc3d4a226f85adc6fd1969edfe947caa4c6f235c2b0b92f150976
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.3-cp310-abi3-manylinux_2_34_x86_64.whl

Download URL jubarte_redlines-0.9.3-cp310-abi3-manylinux_2_34_x86_64.whl
Size 7.8 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
9cebdb054fce0d225956ee70e89b032d70aa1f2079ae708a3cc24cb9b9982d1f
BLAKE2b-256 checksum
How to use checksums
d57be0731b655b9ac402993b87e040821e26e6da1328385297f07f489cb40ba8
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.3-cp310-abi3-manylinux_2_34_aarch64.whl

Download URL jubarte_redlines-0.9.3-cp310-abi3-manylinux_2_34_aarch64.whl
Size 7.6 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64 abi3
SHA-256 checksum
How to use checksums
257aee0e5c0a0e3de97baf3ad6486a7855b08079181532cfb1dc3226f345f9b5
BLAKE2b-256 checksum
How to use checksums
5e811993b0ea6fb48a8746e52b59af416d4ef6773cf63fcb6dc86f917f1a1e19
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.3-cp310-abi3-macosx_11_0_arm64.whl

Download URL jubarte_redlines-0.9.3-cp310-abi3-macosx_11_0_arm64.whl
Size 7.4 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0d02d3491305bde04421d3cdb7f28d16d0805ad091d7e9a313f22878e5f1575a
BLAKE2b-256 checksum
How to use checksums
602a1cf2d77fb67f44548eead76863c3a7a3da55a725b4aadc23f94b99ed8f14
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.3-cp310-abi3-macosx_10_12_x86_64.whl

Download URL jubarte_redlines-0.9.3-cp310-abi3-macosx_10_12_x86_64.whl
Size 7.7 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1157375d4b7cd2c359f55db5b9a68a92c6af2329d77e74f3beb8d7634f27fd92
BLAKE2b-256 checksum
How to use checksums
80b13f7e27f020406deb61d69d96ac1d1478f51c645104973c15a5f214896f7d
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

This release

0.9.3 This release

5 release files

0.9.2

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