{ "info": { "author": "Samuele Santi", "author_email": "redshadow@hackzine.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7" ], "description": "Differ\n######\n\n.. image:: https://travis-ci.org/rshk/differ.svg?branch=master\n :target: https://travis-ci.org/rshk/differ\n\n.. image:: https://coveralls.io/repos/rshk/differ/badge.png\n :target: https://coveralls.io/r/rshk/differ\n\n.. image:: https://pypip.in/v/differ/badge.png\n :target: https://crate.io/packages/differ/\n :alt: Latest PyPI version\n\n.. image:: https://pypip.in/d/differ/badge.png\n :target: https://crate.io/packages/differ/\n :alt: Number of PyPI downloads\n\nPython library to calculate differences between objects.\n\nRight now, it supports calculating differences between objects built\nup of dicts, lists, tuples and base types.\n\nThe major advantage compared to other diff tools is it is able to detect\n\"slightly\" changed objects that were repositioned in a list:\n\n.. code-block:: python\n\n from differ import compare_objects\n\n seq1 = [\n {'a': 1, 'b': 1, 'c': 1},\n {'a': 2, 'b': 2, 'c': 2},\n {'a': 3, 'b': 3, 'c': 3},\n ]\n\n seq2 = [\n {'a': 30, 'b': 30, 'c': 3},\n {'a': 2, 'b': 20, 'c': 2},\n {'a': 1, 'b': 1, 'c': 10},\n ]\n\n diff = compare_objects(seq1, seq2)\n\nResult:\n\n.. code-block:: python\n\n {'added': [],\n 'changed': [0, 1, 2],\n 'distance': 1.0,\n 'equal': [],\n 'removed': [],\n 'total': 3,\n 'changes': {\n 0: {\n 'diff': {\n 'added': [],\n 'changed': ['c'],\n 'changes': {'c': {'distance': 1.0, 'left': 1, 'right': 10}},\n 'distance': 0.3333333333333333,\n 'equal': ['a', 'b'],\n 'removed': [],\n 'total': 3},\n 'distance': 0.3333333333333333,\n 'pos': 2},\n 1: {\n 'diff': {\n 'added': [],\n 'changed': ['b'],\n 'changes': {'b': {'distance': 1.0, 'left': 2, 'right': 20}},\n 'distance': 0.3333333333333333,\n 'equal': ['a', 'c'],\n 'removed': [],\n 'total': 3},\n 'distance': 0.3333333333333333,\n 'pos': 1},\n 2: {\n 'diff': {\n 'added': [],\n 'changed': ['a', 'b'],\n 'changes': {'a': {'distance': 1.0, 'left': 3, 'right': 30},\n 'b': {'distance': 1.0, 'left': 3, 'right': 30}},\n 'distance': 0.6666666666666666,\n 'equal': ['c'],\n 'removed': [],\n 'total': 3},\n 'distance': 0.6666666666666666,\n 'pos': 0}}}\n\nChangelog\n=========\n\nv0.1.4\n------\n\n- Added ``CHANGELOG.rst`` to distributed files (that was the problem!)\n\nv0.1.3\n------\n\n- Fixed issues with ``*.rst`` loading for ``long_description``.\n\nv0.1.1\n------\n\n- Initial version, with support for base objects.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "differ", "package_url": "https://pypi.org/project/differ/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/differ/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/differ/0.1.4/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.1.4" }, "last_serial": 1146322, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "080a60c547d055ec829ce8ef01d62f1e", "sha256": "02ddf64dd8fe5ed15c40e23e22f86eeaca2fd827f41665e350cd8b67d918a0b2" }, "downloads": -1, "filename": "differ-0.1.4.tar.gz", "has_sig": false, "md5_digest": "080a60c547d055ec829ce8ef01d62f1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3395, "upload_time": "2014-07-03T14:57:29", "url": "https://files.pythonhosted.org/packages/14/fb/2d248dee3b3c560bab20928908c33a85c15d7c64a8da6e72a3aaf27251f9/differ-0.1.4.tar.gz" } ], "0.1a": [ { "comment_text": "", "digests": { "md5": "4bab655aa4da6965de97de48bf658f9a", "sha256": "bd73e357df4f1b112d45826dc86b6f2db685ba8b3caf9e8411333b5a458bb9c0" }, "downloads": -1, "filename": "differ-0.1a.tar.gz", "has_sig": false, "md5_digest": "4bab655aa4da6965de97de48bf658f9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2722, "upload_time": "2014-07-03T14:27:41", "url": "https://files.pythonhosted.org/packages/1d/1c/dc2bc2ddf9c58b96f589ae0e30e01f97ff8cb5c36c8214ae79cdd2eed665/differ-0.1a.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "080a60c547d055ec829ce8ef01d62f1e", "sha256": "02ddf64dd8fe5ed15c40e23e22f86eeaca2fd827f41665e350cd8b67d918a0b2" }, "downloads": -1, "filename": "differ-0.1.4.tar.gz", "has_sig": false, "md5_digest": "080a60c547d055ec829ce8ef01d62f1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3395, "upload_time": "2014-07-03T14:57:29", "url": "https://files.pythonhosted.org/packages/14/fb/2d248dee3b3c560bab20928908c33a85c15d7c64a8da6e72a3aaf27251f9/differ-0.1.4.tar.gz" } ] }