Decorator that creates a property that is cached.
- keyword use_cache_ctrl
If True, the property is cached using the Node cache_ctrl. If False, the property is only cached as a private attribute. Default False.
- kwtype use_cache_ctrl
- keyword expires
Expiration date. If a timedelta is supplied, the expiration date will be calculated from the current time. Ignored if use_cache_ctrl=False.
- kwtype expires
float, datetime, timedelta
Podpac caching using the cache_ctrl will be unreliable if the property depends on any non-tagged traits.
The property should only use node attrs (traits tagged with
>>> class MyNode(Node): # property that is recomputed every time @property def my_property(self): return 0
# property is computed once for each object @cached_property def my_cached_property(self):
# property that is computed once and can be reused by other Nodes or sessions, depending on the cache_ctrl @cached_property(use_cache_ctrl=True) def my_persistent_cached_property(self):