Python Tracked Changes Library - docx-revisions
Read and write track changes in Word documents (.docx) with Python. docx-revisions extends python-docx to support document revision tracking, change tracking, and OOXML revision markup (insertions <w:ins> and deletions <w:del>) so you can programmatically accept text, list revisions with author and date, and apply insertions, deletions, or replacements with full revision metadata.
Use it for Microsoft Word-compatible revision tracking: parse DOCX files with track changes on, get accepted (clean) text, enumerate revisions per paragraph, or write new revisions (insert/delete/replace) that show up as track changes in Word.
Installation
pip install docx-revisions
Quick Start
Check out our examples!
Navigate to the examples directory to see code samples.
Read tracked changes
from docx_revisions import RevisionDocument
rdoc = RevisionDocument("tracked_changes.docx")
for para in rdoc.paragraphs:
if para.has_track_changes:
for change in para.track_changes:
print(f"{type(change).__name__}: '{change.text}' by {change.author}")
print(f"Accepted: {para.accepted_text}")
print(f"Original: {para.original_text}")
Accept or reject all changes
from docx_revisions import RevisionDocument
rdoc = RevisionDocument("tracked_changes.docx")
rdoc.accept_all() # or rdoc.reject_all()
rdoc.save("clean.docx")
Find and replace with tracking
from docx_revisions import RevisionDocument
rdoc = RevisionDocument("contract.docx")
count = rdoc.find_and_replace_tracked("Acme Corp", "NewCo Inc", author="Legal")
print(f"Replaced {count} occurrences")
rdoc.save("contract_revised.docx")
Add tracked insertions and deletions
from docx_revisions import RevisionParagraph
rp = RevisionParagraph.from_paragraph(paragraph)
rp.add_tracked_insertion("new text", author="Editor")
rp.add_tracked_deletion(start=5, end=10, author="Editor")
Metadata
Release files for docx-revisions 0.1.5
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 | |
|---|---|---|---|---|
| docx_revisions-0.1.5.tar.gz | 324.2 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docx_revisions-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 342.5 kB
Release files / docx_revisions-0.1.5.tar.gz
| Download URL | docx_revisions-0.1.5.tar.gz |
|---|---|
| Size | 324.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b567eb521d8bc51eb87fe5b94227cf5a8f28fdbf97b18d3e58d393652fdac793
|
|
BLAKE2b-256 checksum How to use checksums |
bafd4ef9a41a2ed36399a81598cb4a534bb73c782410615871cbcc03ee2e2cc2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 14, 2026.
Transparency logRelease files / docx_revisions-0.1.5-py3-none-any.whl
| Download URL | docx_revisions-0.1.5-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f369c5eabbaea450c8214c6ad9de66514e65ff517c6d74db6a15da7c1c8b790
|
|
BLAKE2b-256 checksum How to use checksums |
49f8d425260cade4d519f32bb3822dbcc01c9e7dc94b22dbeb742f4f5578a468
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 14, 2026.
Transparency logSecurity for docx-revisions 0.1.5
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 2 files in this release have been uploaded with provenance metadata.
Attestation for docx_revisions-0.1.5.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 Apr 14, 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.