Simple pickle-based caching utility.
Project description
derpcache
derpcache is a simple pickle-based caching utility.
It's mostly made for people who love restarting their Jupyter kernels.
from derpcache import cache
import requests
countries = [
'Afghanistan',
'Albania',
# ...
'Zambia',
'Zimbabwe'
]
pages = []
for country in countries:
url = f'https://en.wikipedia.org/wiki/{country}'
annotation = f'Wikipedia page for {country}'
page = cache(requests.get, url, _annotation=country)
pages.append(page)
Why should I use derpcache?
- You want a cache that will persist between/across kernels.
- You want a simple functional interface—no magicks.
- You want a reasonable amount of visibility into what's in your cache.
- You want the ability to set expiration rules.
Expiration
>>> import time
>>> def long_running_func(*args, **kwargs):
... time.sleep(1200)
... print('running...')
... return 'done'
...
>>> expires_after = 300
>>> cache(long_running_func, _expires_after=expires_after)
running...
done
>>> cache(long_running_func)
done
>>> time.sleep(expires_after)
>>> cache(long_running_func)
running...
done
Viewing cached entries
from derpcache import get_index
from pprint import pprint
pprint(get_index(), sort_dicts=False) # or, pandas.DataFrame.from_records
{"5e39b292": {"callable": "__main__.long_running_func",
"called_at": "2022-09-06T05:19:14.614796"},
"b37ab1af": {"callable": "requests.api.get",
"called_at": "2022-09-06T05:21:35.157183",
"annotation": "Afghanistan"},
"f0103017": {"callable": "requests.api.get",
"called_at": "2022-09-06T05:21:35.814452",
"annotation": "Albania"},
"8861f226": {"callable": "requests.api.get",
"called_at": "2022-09-06T05:21:36.084777",
"annotation": "Zambia"},
"19754ec0": {"callable": "requests.api.get",
"called_at": "2022-09-06T05:21:36.341655",
"annotation": "Zimbabwe"}}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
derpcache-0.0.0-py3-none-any.whl
(18.9 kB
view details)
File details
Details for the file derpcache-0.0.0-py3-none-any.whl.
File metadata
- Download URL: derpcache-0.0.0-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7630c06b365956bc42196de861d06212cbeacb922a31be9beb03498985eb387
|
|
| MD5 |
8b45d1b0b4ddee5725e53e808d4b75aa
|
|
| BLAKE2b-256 |
4ae62392907f986aba20701d799b836ddb45d59663704353bfb37fc9d3f227f8
|