{ "info": { "author": "Greg Echelberger", "author_email": "greg@keystonetowersystems.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries" ], "description": "# fuzzyfloat\n\n[![PyPI version](https://badge.fury.io/py/fuzzyfloat.svg)](https://badge.fury.io/py/fuzzyfloat)\n[![Build Status](https://travis-ci.com/keystonetowersystems/fuzzyfloat.svg?branch=master)](https://travis-ci.com/keystonetowersystems/fuzzyfloat)\n\nA utility library that provides transparent floating point types with tolerances for equality comparison.\n\n# Getting Started\n\n```python\n>>>from fuzzyfloat import rel_fp\n>>>value = rel_fp(100)\n>>>value == 100\nTrue\n>>>value == 99.99999999\nTrue\n>>>value == 100.00000001\nTrue\n>>>value = 1000\n>>>value == 1000.0000001\nTrue\n>>>value = 10000\n>>>value == 10000.000001\nTrue\n>>>value = 100000\n>>>value == 100000.00001\nTrue\n```\n```python\n>>>from fuzzyfloat import abs_fp\n>>>value = abs_fp(100)\n>>>value = 100000\n>>>value == 100000.00001\nFalse\n>>>value == 100000.00000001\nTrue\n```\n\n# Setting different tolerances\n\n```python\nfrom fuzzyfloat import FuzzyFloatMeta\n\nclass my_fp(metaclass=FuzzyFloatMeta, rel_tol=1e-05, atol=0.01):\n pass\n```\n\n# Using a different underlying type\n\n```python\nimport numpy as np\nfrom fuzzyfloat import FuzzyFloatMeta\n\nclass np_fp(metaclass=FuzzyFloatMeta, ftype=np.float128):\n pass\n\nclass c_fp(metaclass=FuzzyFloatMeta, ftype=complex):\n pass\n```\n\n# Limitations\n\nAny operations provided by the operators module will propogate the class type (and therefore the tolerances).\nHowever, there are many other functions, especially those that touch c extensions, where the type information will\nbe lost, such as ```math.sqrt()```.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/keystonetowersystems/fuzzyfloat", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fuzzyfloat", "package_url": "https://pypi.org/project/fuzzyfloat/", "platform": "", "project_url": "https://pypi.org/project/fuzzyfloat/", "project_urls": { "Homepage": "https://github.com/keystonetowersystems/fuzzyfloat" }, "release_url": "https://pypi.org/project/fuzzyfloat/1.0.3/", "requires_dist": null, "requires_python": ">=3", "summary": "Utility library that provides a floating point type with tolerance for equality comparisons", "version": "1.0.3" }, "last_serial": 4320860, "releases": { "1.0.1.dev1": [ { "comment_text": "", "digests": { "md5": "9262e0bfa1d1bc8d5434178d7ec44161", "sha256": "d74227e5128094c5565589195f2a9b76383e641ce5025996088cf77a1d6c1677" }, "downloads": -1, "filename": "fuzzyfloat-1.0.1.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "9262e0bfa1d1bc8d5434178d7ec44161", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3519, "upload_time": "2018-09-22T01:50:30", "url": "https://files.pythonhosted.org/packages/46/15/ba943d20d6f93f5a6d8899b7bc6d04224eb5afebf9f91bb23301f253cb70/fuzzyfloat-1.0.1.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7434b3761a2667175c51732c3addaec8", "sha256": "470c5e5e673de74ac1f6a28d74dedb870b5ad0ed2e43803ac3680a0c0fc6dbc1" }, "downloads": -1, "filename": "fuzzyfloat-1.0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "7434b3761a2667175c51732c3addaec8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2839, "upload_time": "2018-09-22T01:50:31", "url": "https://files.pythonhosted.org/packages/41/08/ee6a4a167db030c81c2c6e8373a949c0d66b3e4a58d937ba21e43f6b03c5/fuzzyfloat-1.0.1.dev1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "c136e7c0f6d49a39119ac42f2d1798d1", "sha256": "ee58ab59b266a30fc185ee43a8ff2f249112f1a1a57a481e52c32370a289bbaa" }, "downloads": -1, "filename": "fuzzyfloat-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c136e7c0f6d49a39119ac42f2d1798d1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3139, "upload_time": "2018-09-27T19:35:53", "url": "https://files.pythonhosted.org/packages/16/cb/be74e86f0188a564a3851d1057246c3fe8599db25ce269a3dc172a454757/fuzzyfloat-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0abfc3a9dbbf36cc4a79d922da87191", "sha256": "83965087ac9458db41a3074e829fb8bffeec86021f1af0df4f1e17a892e53b35" }, "downloads": -1, "filename": "fuzzyfloat-1.0.2.tar.gz", "has_sig": false, "md5_digest": "c0abfc3a9dbbf36cc4a79d922da87191", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2698, "upload_time": "2018-09-27T19:35:55", "url": "https://files.pythonhosted.org/packages/e6/0d/0fbc5777832294ec23ebdefb79a65ebf124e3554f8feb9007810b986b378/fuzzyfloat-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7b1633b9a79071ca97c49cb17d00687c", "sha256": "161295469f25a69436bebb7b5ae65e3570a12f273ab443c450c8ba187c0f1a13" }, "downloads": -1, "filename": "fuzzyfloat-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7b1633b9a79071ca97c49cb17d00687c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3141, "upload_time": "2018-09-28T17:51:28", "url": "https://files.pythonhosted.org/packages/e7/61/173ce7ecd9b41ad3bd59c654b04b443c8ecc2d29e882fa7698c405e56713/fuzzyfloat-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f758b8b4d5892dd86cdde1f5e561591", "sha256": "c5aeaaf6095b24179d2bc6132175d877d8ec3972a10cf09e6b5eb73fcc4bb8a7" }, "downloads": -1, "filename": "fuzzyfloat-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6f758b8b4d5892dd86cdde1f5e561591", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2700, "upload_time": "2018-09-28T17:51:30", "url": "https://files.pythonhosted.org/packages/46/47/48222255763bbd19b3604ece45bdb1eb7fba0238a01a29191e7e8cc354b4/fuzzyfloat-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7b1633b9a79071ca97c49cb17d00687c", "sha256": "161295469f25a69436bebb7b5ae65e3570a12f273ab443c450c8ba187c0f1a13" }, "downloads": -1, "filename": "fuzzyfloat-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7b1633b9a79071ca97c49cb17d00687c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3141, "upload_time": "2018-09-28T17:51:28", "url": "https://files.pythonhosted.org/packages/e7/61/173ce7ecd9b41ad3bd59c654b04b443c8ecc2d29e882fa7698c405e56713/fuzzyfloat-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f758b8b4d5892dd86cdde1f5e561591", "sha256": "c5aeaaf6095b24179d2bc6132175d877d8ec3972a10cf09e6b5eb73fcc4bb8a7" }, "downloads": -1, "filename": "fuzzyfloat-1.0.3.tar.gz", "has_sig": false, "md5_digest": "6f758b8b4d5892dd86cdde1f5e561591", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2700, "upload_time": "2018-09-28T17:51:30", "url": "https://files.pythonhosted.org/packages/46/47/48222255763bbd19b3604ece45bdb1eb7fba0238a01a29191e7e8cc354b4/fuzzyfloat-1.0.3.tar.gz" } ] }