{ "info": { "author": "Yola", "author_email": "engineers@yola.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "Property caching\n================\n.. image:: https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst\n :target: https://travis-ci.org/yola/property-caching\n\n\nCached version of property\n\nWritten and used by the folks at Yola to support our `free website\nbuilder`_.\n\nOverview\n--------\n\n- ``cached_property`` - stores results of decorated methods in\n decorated object\n (in ``_cached_properties`` attribute)\n- ``class_cached_property`` - stores results of decorated methods in\n the class of decorated object\n (in ``_class_cached_properties`` attribute). All instances will share\n cached value.\n- ``clear_property_cache`` - deletes cached value (works for object\n cached properties only)\n- ``set_property_cache`` - explicitly sets property cache (works for\n object cached properties only)\n- ``is_property_cached`` - allows to check whether property was cached\n or not (works for object cached properties only)\n\nUsage\n-----\n\n.. code:: python\n\n from property_caching import (cached_property,\n class_cached_property,\n clear_property_cache,\n set_property_cache,\n truthy_cached_property)\n\n class Dummy:\n @cached_property\n def foo(self):\n return self.service.expensive_operation()\n\n @truthy_cached_property\n def bar(self):\n # this value will only be cached if it doesn't evaluate to false:\n return self.service.expensive_operation2()\n\n @class_cached_property\n def service(self):\n return expensive_service_initialization()\n\n d = Dummy()\n d.foo # calculates result and stores it in d._cached_properties\n d.foo # uses cached value\n\n clear_property_cache(d, 'foo') # clears cache for property `foo`\n set_property_cache(d, 'foo', 42) # explicitly set cache for property `foo`\n\n d2 = Dummy()\n d2.foo # re-calculates value of `foo` but uses cached service\n\nTesting\n-------\n\nInstall development requirements:\n\n::\n\n pip install -r requirements.txt\n\nRun the tests with:\n\n::\n\n python setup.py test\n\n.. _free website builder: https://www.yola.com/\n\n.. image:: https://travis-ci.org/yola/property-caching.svg?branch=fix/md-to-rst\n :target: https://travis-ci.org/yola/property-caching\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yola/property-caching", "keywords": null, "license": "MIT (Expat)", "maintainer": null, "maintainer_email": null, "name": "property-caching", "package_url": "https://pypi.org/project/property-caching/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/property-caching/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/yola/property-caching" }, "release_url": "https://pypi.org/project/property-caching/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "Property caching", "version": "1.1.0" }, "last_serial": 2034623, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "74136e04788acfdf5e1c94f29b5daf39", "sha256": "f1f1404e6addf9b903093ff05b5b9ee85e0be4c5496a7405845146698f10885c" }, "downloads": -1, "filename": "property-caching-1.0.0.tar.gz", "has_sig": false, "md5_digest": "74136e04788acfdf5e1c94f29b5daf39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3185, "upload_time": "2013-09-09T15:19:46", "url": "https://files.pythonhosted.org/packages/c2/db/5cff39dd110cc4e1c236654316872ae07de2e4abd764b452f9a9b2af4a3e/property-caching-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "fb56d3a1d8417363c08a718d92cede0c", "sha256": "34519f21afcd82008eb63dc3ed97bcca62b0e2d1a2a51b5d8be21301ccb6a6e2" }, "downloads": -1, "filename": "property-caching-1.0.2.tar.gz", "has_sig": false, "md5_digest": "fb56d3a1d8417363c08a718d92cede0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3513, "upload_time": "2014-05-19T13:12:10", "url": "https://files.pythonhosted.org/packages/13/7b/e0e346091e75742351ac6415c645113e57d5e459020918e8ffd1d7c9177c/property-caching-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "da83b3e1c7ec23b414b428b97f35422b", "sha256": "9731926ffb4d504c603fc21de370c0f3718aaf71ed4dfadec89bb2ca8df17df4" }, "downloads": -1, "filename": "property-caching-1.0.3.tar.gz", "has_sig": false, "md5_digest": "da83b3e1c7ec23b414b428b97f35422b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3654, "upload_time": "2014-05-19T14:10:25", "url": "https://files.pythonhosted.org/packages/4d/d9/240d51077f18d70bf7dd7be17167beae9816039de6028242866cdc2dc0be/property-caching-1.0.3.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "3fdd02c37e002a420e26ec56da4c1a52", "sha256": "d2bc1d6dce8e1512f62217e62e84f216163405f45a5a06a5058878126aac9647" }, "downloads": -1, "filename": "property-caching-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3fdd02c37e002a420e26ec56da4c1a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3914, "upload_time": "2016-03-29T20:51:30", "url": "https://files.pythonhosted.org/packages/3d/ea/630e58b10fc10a81f22d64ed265db759cb539535069bfb3c4d7222429d60/property-caching-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3fdd02c37e002a420e26ec56da4c1a52", "sha256": "d2bc1d6dce8e1512f62217e62e84f216163405f45a5a06a5058878126aac9647" }, "downloads": -1, "filename": "property-caching-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3fdd02c37e002a420e26ec56da4c1a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3914, "upload_time": "2016-03-29T20:51:30", "url": "https://files.pythonhosted.org/packages/3d/ea/630e58b10fc10a81f22d64ed265db759cb539535069bfb3c4d7222429d60/property-caching-1.1.0.tar.gz" } ] }