使用pickle和文件缓存功能
项目描述
缓存函数的结果。
简单使用
使用@cache(cachedir, **kwargs)装饰函数。例如,
@cache() def is_prime(number): for n in range(2, number): if number % n == 0: return False return True
更复杂的用法
非默认目录
如果您在上面的示例中没有传递任何参数给cache,那么缓存将存储在以函数命名的目录中。要设置不同的目录,请将其作为参数传递。
@cache('~/.primes') def is_prime(number): for n in range(2, number): if number % n == 0: return False return True
我建议您将缓存存储在位于您家目录下的点状目录中,如您所见。
配置
kwargs被传递给pickle_warehouse.Warehouse,因此您可以执行一些有趣的事情,比如更改序列化函数。
@cache('~/.http', serializer = pickle_warehouse.serializers.identity) def get(url): return requests.get(url).text
有关关键字参数的更多信息,请参阅pickle-warehouse页面。
非标识参数
如果您想传递一个参数但不想将其用作标识符,请传递一个非关键字参数;这些参数将被传递到函数中,但不形成标识符。例如,
@cache('~/.http') def get(url, auth = None): return requests.get(url, auth = auth) get('http://this.website.com', auth = ('username', 'password')
刷新缓存
我发现有时我只想刷新特定文件的缓存。这通常是因为发生了错误,我已经修复了错误,或者因为我正在从网站下载文件,该网站工作得不太好。
有一个方便的方法来刷新这些文件会很好。在此之前,我建议您记录函数调用产生的缓存错误的参数,然后删除相应的文件。
项目详情
关闭
picklecache-0.0.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 23e94d2cf86c05b1c4404e89aecabe2bd8ee1c43f221dcd8dec7456b5aa75bd4 |
|
MD5 | 52bfe5dbb47015ddfe60f836d12d6793 |
|
BLAKE2b-256 | d352e3b28339f1bdac1af77c4aa2275c9f5b5d0a6303f05acc0f1693596c68c7 |