Skip to main content

A tool for describing multiple differences in files.

Project description


Build Status

A tool for describing multiple differences in files.


If you have to compare files which contain multiple differences that are the same, you will know how tedius it is to step through every single hunk of the standard diff output. CleverDiff will show you each unique diff hunk once, then give you a summary of where else it has found the difference across multiple files.


CleverDiff is available on PyPI:

pip install --user cleverdiff


Run the script, with each pair of files separated with = as arguments:

python3 test_data/ref1.def=test_data/new1.def test_data/ref2.def=test_data/new2.def

Or run the script, with --old followed by a list of reference files and --new followed by a list of modified files:

python3 --old test_data/ref.def test_data/ref2.def \
                      --new test_data/new.def test_data/new2.def

CleverDiff will find the differences between each pair of files, then determine which are identical across all files, and give you a summary:

DIFF   0:
insert in ref.def:49 vs new.def:50:
+        edit FOO bar

This difference is replicated elsewhere:
 * with identical diff in different files:
    ref2.def:49 vs new2.def:50

DIFF   1:
change in ref.def:339 vs new.def:340:
-              family sat_172
-                edit WMOID '172'
+              family sat_173
+                edit WMOID '173'

This difference is replicated elsewhere:
 * with identical diff in different files:
    ref2.def:339 vs new2.def:340
 * with same diff but different line numbers:
    ref.def:376 vs new.def:377
    ref.def:413 vs new.def:414
    ref.def:450 vs new.def:451
    ref.def:487 vs new.def:488
    ref2.def:376 vs new2.def:377
    ref2.def:413 vs new2.def:414
    ref2.def:450 vs new2.def:451
    ref2.def:487 vs new2.def:488

Version history


Contributors: @vhsw

  • Add command-line arguments --old and --new (#7)
  • Add black, isort & pyflakes to CI tests (#4)


Contributors: @andrewcbennett Introduces ecFlow context (#2). Bug fixes.


Contributors: @andrewcbennett (with thanks to @takluyver) Fixes failing tests. Adds Travis CI config.


Contributors: @andrewcbennett (with thanks to @takluyver) initial version

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cleverdiff-0.3.tar.gz (25.1 kB view hashes)

Uploaded source

Built Distribution

cleverdiff-0.3-py3-none-any.whl (155.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page