CachingΒΆ
To overcome redundant requests of the same data to the waterinfo endpoints, the package relies on the requests-cache package to cache the GET
requests. The
cache feature is opt-in (not installed/activated by default), but can be used after installing the cache dependency packages:
pip install pywaterinfo[cache]
To use the cache, activate it on the initialization of the Waterinfo
class:
from pywaterinfo import Waterinfo
vmm = Waterinfo("vmm", cache=True)
The cache is stored in a sqlite database called pywaterinfo_cache.sqlite
and the default retention time of the cache is 7 days.
When you want to make sure to not use a cached requests, make sure to empty the cache first using the clear_cache()
method:
from pywaterinfo import Waterinfo
vmm = Waterinfo("vmm")
vmm.clear_cache()
vmm.get_timeseries_list(station_no="ME09_012")
To see if the response is retrieved from cache or not, activate the logging, see page on logging.
Warning
When downloading a lot of (small) data with many requests in a short amount of time the cache can grow quickly. This increases the computational time to check if a request already has been made and can be retrieved from the cache. Clearing the cache can overcome increasing initialization time:
from pywaterinfo import Waterinfo
vmm = Waterinfo("vmm")
vmm.clear_cache()
When the initialization time (Creating the Waterinfo
class) goes up to more than a minute without a network timeout error, clearing the cache is worthwhile to test.