跳转到主要内容

使用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 (2.0 kB 查看哈希值)

上传时间:

由以下提供支持