Property caching
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
property-caching-1.1.0.tar.gz
(3.9 kB
view hashes)