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.7.0.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

deltas-0.7.0-py2.py3-none-any.whl (36.1 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: deltas-0.7.0.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.15.0 CPython/3.8.5

File hashes

Hashes for deltas-0.7.0.tar.gz
Algorithm Hash digest
SHA256 ada14ba6be4bb6360c3f5229c0bdd96e3de654b435fbf8a137528c43c6e23204
MD5 2f4ffc0635c24d04032ef195aad4795e
BLAKE2b-256 fc71853179e2b7f8b068c53d336ff2473fcd00f1b63333d9d71f76b4245d68ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: deltas-0.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.15.0 CPython/3.8.5

File hashes

Hashes for deltas-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0f05c3c10b72135aed34cb56126fc4ea0678469067f5638c2af0db01c12fc48f
MD5 843d58ca08371d0053d0539a4dd33e55
BLAKE2b-256 b8524d7885511444177409210bb2099fadb82f4ec1c9422aac3011741fa78ca3

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