temporal-cache¶
Time-based cache invalidation
Build Status Coverage License PyPI Docs
Why?¶
I needed something that would automagically refresh at 4:00pm when markets close.
@expire(hour=16)
def fetchFinancialData():
Interval Cache¶
The interval cache expires every time
interval since its first use
@interval(seconds=5, minutes=2)
def myfoo():
'''myfoo's lru_cache will expire 2 minutes, 5 seconds after last use'''
Expire Cache¶
The expire cache expires on the time given, in scheduler/cron style.
@expire(second=5, minute=2)
def myfoo():
'''myfoo's lru_cache will expire on the second minute, fifth second of every hour, every day, etc'''
Caveats¶
Python hashing symantics persist. Dicts will be frozen, lists will be converted to tuples. Users are advised to pre-freeze to avoid issues.
Development¶
See CONTRIBUTING.md for guidelines.
API Documentation¶
-
temporalcache.expire.
daily
(on=0, tz=None, maxsize=128, persistent='', custom=None, **kwargs)[source]¶
-
temporalcache.expire.
expire
(second=None, minute=None, hour=None, day=None, day_of_week=None, week=None, month=None, tz=None, maxsize=128, persistent='', custom=None, **kwargs)[source]¶ Expires all entries in the cache @ whole number time
for example, @expire(0, 30, 16) will expire the cache at 4:30pm every day
-
temporalcache.expire.
hourly
(on=0, tz=None, maxsize=128, persistent='', custom=None, **kwargs)[source]¶
-
temporalcache.expire.
minutely
(on=0, tz=None, maxsize=128, persistent='', custom=None, **kwargs)[source]¶
-
temporalcache.expire.
monthly
(on=0, tz=None, maxsize=128, persistent='', custom=None, **kwargs)[source]¶