Cached version of property
Written and used by the folks at Yola to support our free website builder.
Overview
cached_property - stores results of decorated methods in decorated object (in _cached_properties attribute)
class_cached_property - stores results of decorated methods in the class of decorated object (in _class_cached_properties attribute). All instances will share cached value.
clear_property_cache - deletes cached value (works for object cached properties only)
set_property_cache - explicitly sets property cache (works for object cached properties only)
is_property_cached - allows to check whether property was cached or not (works for object cached properties only)
Usage
from property_caching import (cached_property,
class_cached_property,
clear_property_cache,
set_property_cache,
truthy_cached_property)
class Dummy:
@cached_property
def foo(self):
return self.service.expensive_operation()
@truthy_cached_property
def bar(self):
# this value will only be cached if it doesn't evaluate to false:
return self.service.expensive_operation2()
@class_cached_property
def service(self):
return expensive_service_initialization()
d = Dummy()
d.foo # calculates result and stores it in d._cached_properties
d.foo # uses cached value
clear_property_cache(d, 'foo') # clears cache for property `foo`
set_property_cache(d, 'foo', 42) # explicitly set cache for property `foo`
d2 = Dummy()
d2.foo # re-calculates value of `foo` but uses cached service
Testing
Install development requirements:
pip install -r requirements.txt
Run the tests with:
python setup.py test
Metadata
Release files for property-caching 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| property-caching-1.1.0.tar.gz | 3.9 kB | Details |
Release files / property-caching-1.1.0.tar.gz
| Download URL | property-caching-1.1.0.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d2bc1d6dce8e1512f62217e62e84f216163405f45a5a06a5058878126aac9647
|
|
BLAKE2b-256 checksum How to use checksums |
3dea630e58b10fc10a81f22d64ed265db759cb539535069bfb3c4d7222429d60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |