发行说明#
0.13.1#
已移除对旧序列化格式的支持。
将序列化实现移动到自己的方法中。
不再支持低于 3.7 的 Python 版本。
0.13.0#
已撤销
该项目已迁移到 PSF 组织。
在序列化和反序列化响应时,放弃
strict
属性。修复由
urllib3 2.0
引发的IncompleteRead
错误。不再使用
utcnow
,转而使用支持时区的日期时间。移除
compat
模块。使用 Python 的
unittest.mock
库,而不是mock
。添加类型注释。
从 wheel 中排除
tests
目录。
0.12.14#
恢复更改“将 lockfile 切换到 filelock”以修复兼容性问题。
0.12.13#
在序列化和反序列化响应时,放弃
strict
属性。修复由
urllib3
2.0 引发的 IncompleteRead 错误。从 wheel 中排除 tests 目录。
0.12.11#
添加
FileCache
的新变体SeparateBodyFileCache
,它通过将正文存储在与元数据不同的文件中并直接从该文件流入和流出数据来减少内存使用。由 [Itamar Turner-Trauring](https://pythonspeed.com) 实现,工作由 [G-Research](https://www.gresearch.co.uk/technology-innovation-and-open-source/) 赞助。
0.12.7#
不再支持 Python 2.7、3.4、3.5。
缓存大文件时减少内存使用。
0.12.0#
我们现在使用 MessagePack (http://msgpack.org/) 而不是使用压缩 JSON 来缓存值。MessagePack 的优点是序列化和反序列化速度更快,尤其是在缓存大型二进制有效负载时。
0.11.2#
此版本引入了 cachecontrol.heuristics.LastModified 启发式算法。当没有提供明确的过期时间时,它使用与许多浏览器相同的方式,根据 Last-Modified 标头为过期时间设定基础。
0.11.0#
最大的改变是引入了使用压缩 JSON 而不是 pickle 来存储缓存值。这允许 Python 3.4 和 Python 2.7 使用相同的缓存存储。以前,如果在 3.4 上创建了缓存,2.7 客户端将无法加载它,从而导致无效的缓存未命中。使用 JSON 还可以避免 pickle 中使用的 exec 调用,通过避免潜在的代码注入点来提高缓存的安全性。最后,压缩 JSON 是一个更小的有效负载,节省了一点空间。
为了支持 JSON 格式中的任意二进制数据,使用 base64 编码将数据转换为字符串。它必须进行一些编码转换以确保字节/字符串类型正确,所以请如果你发现任何问题,打开一个新问题。
此版本还引入了 cachecontrol.heuristics.ExpiresAfter 启发式算法。这允许传入参数,如 datetime.timedelta,以配置所有响应在特定时间段内缓存。
0.10.0#
这是一个重要的版本,因为它改变了实际缓存的内容。我们现在缓存的是底层 urllib3 响应对象,而不是缓存请求的 Response 对象。此外,只有当响应实际上被用户使用时,才会缓存响应。
这些更改允许重新引入 .raw 支持。
非常感谢 @dstufft 提供这些优秀的补丁,并为 CacheControl 投入了大量工作,让缓存响应的行为与普通响应完全一致。