{ "info": { "author": "Stephen Tierney", "author_email": "sjtrny@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License" ], "description": "[![Build Status](https://travis-ci.org/sjtrny/jitcache.svg?branch=master)](https://travis-ci.org/sjtrny/jitcache)\n[![Documentation Status](https://readthedocs.org/projects/jitcache/badge/?version=latest)](https://jitcache.readthedocs.io/en/latest/?badge=latest)\n[![Downloads](https://pepy.tech/badge/jitcache)](https://pepy.tech/project/jitcache)\n\n# jitcache\n\njitcache is a just-in-time key-value cache that is thread/process safe. jitcache also prevents repeated computation\nwhen multiple workers request the same value.\n\njitcache was designed to improve the performance of Plot.ly Dash apps by caching results and reducing CPU load.\n\nInstallation\n-------------------\n\nInstall via pip:\n\n $ pip install jitcache\n\nDocumentation\n-------------------\n\nFull documentation available here [https://jitcache.readthedocs.io/](https://jitcache.readthedocs.io/en/latest/)\n\nBasic Usage\n-------------------\n\n from jitcache import Cache\n import time\n\n\n cache = Cache()\n\n\n @cache.memoize\n def slow_fn(input_1, input_2, input_3=10):\n print(\"Slow Function Called\")\n time.sleep(1)\n return input_1 * input_2 * input_3\n\n\n print(slow_fn(10, 2))\n\n\n Output:\n\n Slow Function Called\n 40\n\n\nPlot.ly Dash Usage\n-------------------\n\n import dash\n import dash_html_components as html\n from jitcache import Cache\n import dash_core_components as dcc\n\n\n cache = Cache()\n\n app = dash.Dash(__name__)\n\n server = app.server\n app.layout = html.Div(\n children=[\n html.Div(id=\"output-container-dropdown1\", children=[]),\n html.Div(id=\"output-container-dropdown2\", children=[]),\n dcc.Dropdown(\n options=[\n {\"label\": \"New York City\", \"value\": \"NYC\"},\n {\"label\": \"Montr\u00e9al\", \"value\": \"MTL\"},\n {\"label\": \"San Francisco\", \"value\": \"SF\"},\n ],\n value=\"MTL\",\n id=\"dropdown\",\n ),\n ]\n )\n\n\n @app.callback(\n dash.dependencies.Output(\"output-container-dropdown1\", \"children\"),\n [dash.dependencies.Input(\"dropdown\", \"value\")],\n )\n @cache.memoize\n def update_output1(input_dropdown):\n print(\"run1\")\n\n return input_dropdown\n\n\n @app.callback(\n dash.dependencies.Output(\"output-container-dropdown2\", \"children\"),\n [dash.dependencies.Input(\"dropdown\", \"value\")],\n )\n @cache.memoize\n def update_output2(input_dropdown):\n print(\"run2\")\n\n return input_dropdown\n\n\n if __name__ == \"__main__\":\n app.run_server(debug=True)\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/sjtrny/jitcache", "keywords": "cache jit key value dictionary thread process", "license": "", "maintainer": "", "maintainer_email": "", "name": "jitcache", "package_url": "https://pypi.org/project/jitcache/", "platform": "", "project_url": "https://pypi.org/project/jitcache/", "project_urls": { "Homepage": "https://github.com/sjtrny/jitcache" }, "release_url": "https://pypi.org/project/jitcache/0.32/", "requires_dist": null, "requires_python": ">=3", "summary": "jitcache is a just-in-time key-value cache that isthread/process safe", "version": "0.32" }, "last_serial": 4804340, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "10c8547d84646eb5331dbcf7b05cc26f", "sha256": "e2f6fcdb9e8a79961249baa23eb1bf46fdabebf42d0464104bc82d5c3df205a4" }, "downloads": -1, "filename": "jitcache-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "10c8547d84646eb5331dbcf7b05cc26f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3329, "upload_time": "2019-02-08T03:48:18", "url": "https://files.pythonhosted.org/packages/f0/29/356ee6482e071c210aa65f514c0a8d418f63c6249c6390708b718fbe4173/jitcache-0.2-py3-none-any.whl" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2b544949c4529a379cf8bf323cce3f0f", "sha256": "7d4f212c91f0987a2bca3b63939c555bd6190b190b77e8c2f1c4eb1a67cb817a" }, "downloads": -1, "filename": "jitcache-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2b544949c4529a379cf8bf323cce3f0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3518, "upload_time": "2019-02-10T00:10:00", "url": "https://files.pythonhosted.org/packages/b4/f0/11374891b4c3a1f90b6e51a8ca6467b14bccf3384351e5f290dcbcd1dd5a/jitcache-0.3-py3-none-any.whl" } ], "0.31": [ { "comment_text": "", "digests": { "md5": "d41fb8af190610b7324a98f6387eb26e", "sha256": "64d0ea779965ca29bad2896b17b3f76d246f942b47bd7fa2d8761f1a55683be8" }, "downloads": -1, "filename": "jitcache-0.31-py3-none-any.whl", "has_sig": false, "md5_digest": "d41fb8af190610b7324a98f6387eb26e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3674, "upload_time": "2019-02-10T07:41:23", "url": "https://files.pythonhosted.org/packages/83/79/da689799229818b4f073b51aaa7769bdd522be2d5017fc16c0d88cf37ac1/jitcache-0.31-py3-none-any.whl" } ], "0.32": [ { "comment_text": "", "digests": { "md5": "c53c4d5aa2a271e880596e36b79e6a91", "sha256": "1bd4e3913958e1b4690a1d73dd6e6d687fd134209da309956d45e5963b097228" }, "downloads": -1, "filename": "jitcache-0.32-py3-none-any.whl", "has_sig": false, "md5_digest": "c53c4d5aa2a271e880596e36b79e6a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3667, "upload_time": "2019-02-11T06:11:53", "url": "https://files.pythonhosted.org/packages/7b/8a/a48fb0d22dc3abd3a23acc19bfb3b64dcca8f61c9611be6fa1ea933f7d5c/jitcache-0.32-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c53c4d5aa2a271e880596e36b79e6a91", "sha256": "1bd4e3913958e1b4690a1d73dd6e6d687fd134209da309956d45e5963b097228" }, "downloads": -1, "filename": "jitcache-0.32-py3-none-any.whl", "has_sig": false, "md5_digest": "c53c4d5aa2a271e880596e36b79e6a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3667, "upload_time": "2019-02-11T06:11:53", "url": "https://files.pythonhosted.org/packages/7b/8a/a48fb0d22dc3abd3a23acc19bfb3b64dcca8f61c9611be6fa1ea933f7d5c/jitcache-0.32-py3-none-any.whl" } ] }