Skip to main content

An experimental diff library for generating operation deltas that represent the difference between two sequences of comparable items.

Project description

An open licensed (MIT) library for performing generating deltas (A.K.A sequences of operations) representing the difference between two sequences of comparable tokens.

This library is intended to be used to make experimental difference detection strategies more easily available. There are currently two strategies available:

deltas.sequence_matcher.diff(a, b):

A shameless wrapper around difflib.SequenceMatcher to get it to work within the structure of deltas.

deltas.segment_matcher.diff(a, b, segmenter=None):

A generalized difference detector that is designed to detect block moves and copies based on the use of a Segmenter.

Example:
>>> from deltas import segment_matcher, text_split
>>>
>>> a = text_split.tokenize("This is some text.  This is some other text.")
>>> b = text_split.tokenize("This is some other text.  This is some text.")
>>> operations = segment_matcher.diff(a, b)
>>>
>>> for op in operations:
...     print(op.name, repr(''.join(a[op.a1:op.a2])),
...           repr(''.join(b[op.b1:op.b2])))
...
equal 'This is some other text.' 'This is some other text.'
insert ' ' '  '
equal 'This is some text.' 'This is some text.'
delete '  ' ''

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

deltas-0.5.1.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

deltas-0.5.1-py2.py3-none-any.whl (29.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file deltas-0.5.1.tar.gz.

File metadata

  • Download URL: deltas-0.5.1.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.5.6

File hashes

Hashes for deltas-0.5.1.tar.gz
Algorithm Hash digest
SHA256 38446cfbb0c2d101045fa6d3513e77169f0b16f31e7bc5197ef5a7ef784921b6
MD5 fa7729bf576c4f90fb934c4933a0bf9c
BLAKE2b-256 c657922c4000e01ae67abfe830b3cc99a7716c71afb4bdef4b26231ce6e24775

See more details on using hashes here.

File details

Details for the file deltas-0.5.1-py2.py3-none-any.whl.

File metadata

  • Download URL: deltas-0.5.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.15.0 CPython/3.7.7

File hashes

Hashes for deltas-0.5.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1f5256ae056592eb98134523c1e6c2351beeeb028341535bff358fd59e3b90f7
MD5 f4eb3fa3491364c11605962f795040ac
BLAKE2b-256 89c2c5d4fa88aea37d8d842901b3599c387d4ac9576253535bb27ccdfd6f37f0

See more details on using hashes here.

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