{ "info": { "author": "thomas9911", "author_email": "thomastimmer11@hotmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Public Domain", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "No depenencies, no external services functional cache.\n\nOnly relies on sqlite3 from the standard python library plus hashlib.sha1 and json.dumps also from standard library.\n\n\nNote: Most of the limits are due to sqlite. There are other libraries who can relief you from these limits.\n Also this is probabily not usable as a 'real' cache because there is no 'expiry' option. That is why it is a functional cache:\n\n`f(x) => y, where function f always gives output y given input x.`\n\nTherefore it is usable for expensive and/or recursive functions.\n\n### Example for a recursive factorial function:\n```python\nfrom functional_cache import FunctionalCache\n\n\nf = FunctionalCache(\"factorial.db\")\n\n\n@f.cache\ndef factorial(n: int) -> str:\n \"\"\"factorial function that returns the answer in a string.\n This so sqlite can save the large integers.\n \"\"\"\n if n < 2:\n return \"1\"\n else:\n return str(n*int(factorial(n-1)))\n\n\ndef build_up_factorial(n):\n print(\"This will build a factorial database until {n}!\".format(n=n))\n for i in range(20, n, 20):\n print(\"now at {i}\".format(i=i), end=\"\\r\")\n factorial(i)\n\n\nn = 900\nbuild_up_factorial(n)\nprint(\"{}! = {}\".format(n, factorial(900)))\n\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/thomas9911/FunctionalCache", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "FunctionalCache", "package_url": "https://pypi.org/project/FunctionalCache/", "platform": "", "project_url": "https://pypi.org/project/FunctionalCache/", "project_urls": { "Homepage": "https://github.com/thomas9911/FunctionalCache" }, "release_url": "https://pypi.org/project/FunctionalCache/0.1/", "requires_dist": null, "requires_python": "", "summary": "SQLite function cache", "version": "0.1" }, "last_serial": 4502935, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e67cb8dc28a69706344eb47d543ee663", "sha256": "5287c80e733670825f56d255aecff066b25400774492608759dd25e640e4fa06" }, "downloads": -1, "filename": "FunctionalCache-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e67cb8dc28a69706344eb47d543ee663", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4525, "upload_time": "2018-11-19T13:30:16", "url": "https://files.pythonhosted.org/packages/20/cc/f856c15ddfd8de809c926b242a9e330104be9463eb3d51971b4f0d4ee372/FunctionalCache-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2271a7ed04a7706440ba14b01167121f", "sha256": "630042192187b5689f95b9d1730f2cd4aad324cf144181b9bf3a6e2d97ea6a48" }, "downloads": -1, "filename": "FunctionalCache-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2271a7ed04a7706440ba14b01167121f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4522, "upload_time": "2018-11-19T13:30:18", "url": "https://files.pythonhosted.org/packages/32/66/c6c9ba9fbff653a970d073bf91e6c9ff9ff1e82544222de5fc087e74d42b/FunctionalCache-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37fe14f5dbf584da040c2143fda99387", "sha256": "0e1379c4117a0f7ebda2e19e744d9e6eb0ad8e4b056e5fedeb4e2341cf8f0423" }, "downloads": -1, "filename": "FunctionalCache-0.1.tar.gz", "has_sig": false, "md5_digest": "37fe14f5dbf584da040c2143fda99387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3382, "upload_time": "2018-11-19T13:30:19", "url": "https://files.pythonhosted.org/packages/47/c6/b56f0df8cf62d37009b88101a8d3221d49f52eada49ad175b46e6d65c97a/FunctionalCache-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e67cb8dc28a69706344eb47d543ee663", "sha256": "5287c80e733670825f56d255aecff066b25400774492608759dd25e640e4fa06" }, "downloads": -1, "filename": "FunctionalCache-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e67cb8dc28a69706344eb47d543ee663", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4525, "upload_time": "2018-11-19T13:30:16", "url": "https://files.pythonhosted.org/packages/20/cc/f856c15ddfd8de809c926b242a9e330104be9463eb3d51971b4f0d4ee372/FunctionalCache-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2271a7ed04a7706440ba14b01167121f", "sha256": "630042192187b5689f95b9d1730f2cd4aad324cf144181b9bf3a6e2d97ea6a48" }, "downloads": -1, "filename": "FunctionalCache-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2271a7ed04a7706440ba14b01167121f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4522, "upload_time": "2018-11-19T13:30:18", "url": "https://files.pythonhosted.org/packages/32/66/c6c9ba9fbff653a970d073bf91e6c9ff9ff1e82544222de5fc087e74d42b/FunctionalCache-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37fe14f5dbf584da040c2143fda99387", "sha256": "0e1379c4117a0f7ebda2e19e744d9e6eb0ad8e4b056e5fedeb4e2341cf8f0423" }, "downloads": -1, "filename": "FunctionalCache-0.1.tar.gz", "has_sig": false, "md5_digest": "37fe14f5dbf584da040c2143fda99387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3382, "upload_time": "2018-11-19T13:30:19", "url": "https://files.pythonhosted.org/packages/47/c6/b56f0df8cf62d37009b88101a8d3221d49f52eada49ad175b46e6d65c97a/FunctionalCache-0.1.tar.gz" } ] }