patiencediff 0.2.18


pip install patiencediff

  Latest version

Released: Oct 15, 2025


Meta
Maintainer: Breezy Developers
Requires Python: >=3.9

Classifiers

Development Status
  • 6 - Mature

Programming Language
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14
  • Python :: Implementation :: CPython
  • Python :: Implementation :: PyPy

Operating System
  • POSIX

This package contains the implementation of the patiencediff algorithm, as first described by Bram Cohen.

Like Python’s difflib, this module provides both a convenience unified_diff function for the generation of unified diffs of text files as well as a SequenceMatcher that can be used on arbitrary lists.

Patiencediff provides a good balance of performance, nice output for humans, and implementation simplicity.

The code in this package was extracted from the Bazaar code base.

The package comes with two implementations:

  • A Python implementation (_patiencediff_py.py); this implementation only requires a Python interpreter and is the more readable version of the two

  • A C implementation implementation (_patiencediff_c.c); this implementation is faster, but requires a C compiler and is less readable

Usage

To invoke patiencediff from the command-line:

python -m patiencediff file_a file_b

Or from Python:

>>> import patiencediff
>>> print(''.join(patiencediff.unified_diff(
...      ['a\n', 'b\n', 'b\n', 'c\n'],
...      ['a\n', 'c\n', 'b\n'])))
---
+++
@@ -1,4 +1,3 @@
 a
+c
 b
-b
-c

Wheel compatibility matrix

Platform CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython (additional flags: t) 3.14 PyPy 3.9 (pp73) PyPy 3.10 (pp73) PyPy 3.11 (pp73)
macosx_10_15_universal2
macosx_10_15_x86_64
macosx_11_0_arm64
manylinux_2_28_aarch64
manylinux_2_28_x86_64
win32
win_amd64

Files in release

patiencediff-0.2.18-cp310-cp310-macosx_11_0_arm64.whl (264.0KiB)
patiencediff-0.2.18-cp310-cp310-manylinux_2_28_aarch64.whl (294.4KiB)
patiencediff-0.2.18-cp310-cp310-manylinux_2_28_x86_64.whl (303.1KiB)
patiencediff-0.2.18-cp310-cp310-win32.whl (155.7KiB)
patiencediff-0.2.18-cp310-cp310-win_amd64.whl (162.3KiB)
patiencediff-0.2.18-cp311-cp311-macosx_11_0_arm64.whl (263.5KiB)
patiencediff-0.2.18-cp311-cp311-manylinux_2_28_aarch64.whl (293.8KiB)
patiencediff-0.2.18-cp311-cp311-manylinux_2_28_x86_64.whl (302.3KiB)
patiencediff-0.2.18-cp311-cp311-win32.whl (155.2KiB)
patiencediff-0.2.18-cp311-cp311-win_amd64.whl (162.0KiB)
patiencediff-0.2.18-cp312-cp312-macosx_11_0_arm64.whl (260.8KiB)
patiencediff-0.2.18-cp312-cp312-manylinux_2_28_aarch64.whl (294.1KiB)
patiencediff-0.2.18-cp312-cp312-manylinux_2_28_x86_64.whl (302.5KiB)
patiencediff-0.2.18-cp312-cp312-win32.whl (155.1KiB)
patiencediff-0.2.18-cp312-cp312-win_amd64.whl (162.3KiB)
patiencediff-0.2.18-cp313-cp313-macosx_11_0_arm64.whl (260.9KiB)
patiencediff-0.2.18-cp313-cp313-manylinux_2_28_aarch64.whl (294.1KiB)
patiencediff-0.2.18-cp313-cp313-manylinux_2_28_x86_64.whl (302.3KiB)
patiencediff-0.2.18-cp313-cp313-win32.whl (155.6KiB)
patiencediff-0.2.18-cp313-cp313-win_amd64.whl (162.4KiB)
patiencediff-0.2.18-cp314-cp314-macosx_10_15_universal2.whl (506.0KiB)
patiencediff-0.2.18-cp314-cp314-macosx_10_15_x86_64.whl (268.4KiB)
patiencediff-0.2.18-cp314-cp314-macosx_11_0_arm64.whl (261.1KiB)
patiencediff-0.2.18-cp314-cp314-manylinux_2_28_aarch64.whl (294.1KiB)
patiencediff-0.2.18-cp314-cp314-manylinux_2_28_x86_64.whl (302.2KiB)
patiencediff-0.2.18-cp314-cp314t-macosx_10_15_universal2.whl (502.9KiB)
patiencediff-0.2.18-cp314-cp314t-macosx_10_15_x86_64.whl (267.8KiB)
patiencediff-0.2.18-cp314-cp314t-macosx_11_0_arm64.whl (258.8KiB)
patiencediff-0.2.18-cp314-cp314t-manylinux_2_28_aarch64.whl (292.6KiB)
patiencediff-0.2.18-cp314-cp314t-manylinux_2_28_x86_64.whl (301.2KiB)
patiencediff-0.2.18-cp39-cp39-macosx_11_0_arm64.whl (265.8KiB)
patiencediff-0.2.18-cp39-cp39-manylinux_2_28_aarch64.whl (295.9KiB)
patiencediff-0.2.18-cp39-cp39-manylinux_2_28_x86_64.whl (305.1KiB)
patiencediff-0.2.18-cp39-cp39-win32.whl (157.0KiB)
patiencediff-0.2.18-cp39-cp39-win_amd64.whl (164.3KiB)
patiencediff-0.2.18-pp310-pypy310_pp73-win_amd64.whl (163.8KiB)
patiencediff-0.2.18-pp311-pypy311_pp73-win_amd64.whl (162.3KiB)
patiencediff-0.2.18-pp39-pypy39_pp73-win_amd64.whl (164.2KiB)
patiencediff-0.2.18.tar.gz (23.9KiB)
Extras:
Dependencies: