diff


Namediff JSON
Version 2023.12.6 PyPI version JSON
download
home_page
SummaryYou diff objects, you find out why they ain't the same.
upload_time2023-12-30 14:51:26
maintainer
docs_urlNone
authorJulian Berman
requires_python>=3.10
licenseMIT
keywords diff difference protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ====
diff
====

|PyPI| |Pythons| |CI| |pre-commit|

.. |PyPI| image:: https://img.shields.io/pypi/v/diff.svg
  :alt: PyPI version
  :target: https://pypi.org/project/diff/

.. |Pythons| image:: https://img.shields.io/pypi/pyversions/diff.svg
  :alt: Supported Python versions
  :target: https://pypi.org/project/diff/

.. |CI| image:: https://github.com/Julian/diff/workflows/CI/badge.svg
  :alt: Build status
  :target: https://github.com/Julian/diff/actions?query=workflow%3ACI

.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/Julian/diff/main.svg
  :alt: pre-commit.ci status
  :target: https://results.pre-commit.ci/latest/github/Julian/diff/main


``diff`` defines a difference protocol. Watch:

.. code-block:: python

    >>> class LonelyObject:
    ...     def __diff__(self, other):
    ...         return f"{self} is not like {other}"
    ...
    ...     def __repr__(self):
    ...         return "<LonelyObject>"

    >>> from diff import diff
    >>> diff(LonelyObject(), 12).explain()
    '<LonelyObject> is not like 12'

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "diff",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "diff,difference,protocol",
    "author": "Julian Berman",
    "author_email": "Julian+diff@GrayVines.com",
    "download_url": "https://files.pythonhosted.org/packages/a7/42/66c5589a8489c306a8ccb7b52ee113dfb6cc4eb7075cc2dccb1a883a9b58/diff-2023.12.6.tar.gz",
    "platform": null,
    "description": "====\ndiff\n====\n\n|PyPI| |Pythons| |CI| |pre-commit|\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/diff.svg\n  :alt: PyPI version\n  :target: https://pypi.org/project/diff/\n\n.. |Pythons| image:: https://img.shields.io/pypi/pyversions/diff.svg\n  :alt: Supported Python versions\n  :target: https://pypi.org/project/diff/\n\n.. |CI| image:: https://github.com/Julian/diff/workflows/CI/badge.svg\n  :alt: Build status\n  :target: https://github.com/Julian/diff/actions?query=workflow%3ACI\n\n.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/Julian/diff/main.svg\n  :alt: pre-commit.ci status\n  :target: https://results.pre-commit.ci/latest/github/Julian/diff/main\n\n\n``diff`` defines a difference protocol. Watch:\n\n.. code-block:: python\n\n    >>> class LonelyObject:\n    ...     def __diff__(self, other):\n    ...         return f\"{self} is not like {other}\"\n    ...\n    ...     def __repr__(self):\n    ...         return \"<LonelyObject>\"\n\n    >>> from diff import diff\n    >>> diff(LonelyObject(), 12).explain()\n    '<LonelyObject> is not like 12'\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "You diff objects, you find out why they ain't the same.",
    "version": "2023.12.6",
    "project_urls": {
        "Documentation": "https://diff.readthedocs.io/",
        "Funding": "https://github.com/sponsors/Julian",
        "Homepage": "https://github.com/Julian/diff",
        "Issues": "https://github.com/Julian/diff/issues/",
        "Source": "https://github.com/Julian/diff"
    },
    "split_keywords": [
        "diff",
        "difference",
        "protocol"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "60c62dac6e692cfaee7a133f7b40d6e09681360f95938c25904c370d2b17c1e8",
                "md5": "aa8914151df9b630aa1c99ef81a7575d",
                "sha256": "7e61b2dbb25e6f509715b6f31c9d0bf059203f1c8e28aa758bc252f56754dd3d"
            },
            "downloads": -1,
            "filename": "diff-2023.12.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aa8914151df9b630aa1c99ef81a7575d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 5892,
            "upload_time": "2023-12-30T14:51:24",
            "upload_time_iso_8601": "2023-12-30T14:51:24.060697Z",
            "url": "https://files.pythonhosted.org/packages/60/c6/2dac6e692cfaee7a133f7b40d6e09681360f95938c25904c370d2b17c1e8/diff-2023.12.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a74266c5589a8489c306a8ccb7b52ee113dfb6cc4eb7075cc2dccb1a883a9b58",
                "md5": "7005de31613c1e2d3343df882f7c307b",
                "sha256": "44d7370ad713f71dcab625189e0a0eec3027da8706f9ce885f55d5760351dd5d"
            },
            "downloads": -1,
            "filename": "diff-2023.12.6.tar.gz",
            "has_sig": false,
            "md5_digest": "7005de31613c1e2d3343df882f7c307b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 7827,
            "upload_time": "2023-12-30T14:51:26",
            "upload_time_iso_8601": "2023-12-30T14:51:26.042784Z",
            "url": "https://files.pythonhosted.org/packages/a7/42/66c5589a8489c306a8ccb7b52ee113dfb6cc4eb7075cc2dccb1a883a9b58/diff-2023.12.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-30 14:51:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sponsors",
    "github_project": "Julian",
    "github_not_found": true,
    "lcname": "diff"
}
        
Elapsed time: 0.16204s