reckon: 简单至极,动态缓存。
项目描述
reckon: 简单至极,动态记忆化
安装
为了安装最新版本,只需运行 pip3 install -U reckon
。
此库需要Python 3.6或更高版本。
这是什么?
reckon
通过自动监控您机器的内存使用情况,并在接近预定义比例(默认为90%)时自动清除条目来实现动态LRU缓存。
reckon
主要受到 global_lru_cache
包的启发,因此应该为初始实现给予认可。此包将这些想法引入python3,并添加了本地缓存实现。
用法
用法简单
import reckon
@reckon.memoize
def some_expensive_func(foo: int, bar: int):
return foo ** bar
reckon
将自动使用全局缓存。
虽然全局缓存会自动维护,但可能需要手动管理缓存。为此,reckon提供了以下全局方法
reckon.glob.clear
:清除全局缓存。reckon.glob.shrink
:缩小全局缓存。reckon.glob.usage
:检查当前使用率。reckon.glob.set_usage
:设置全局缓存的最高内存使用率。reckon.glob.info
:查看缓存的高级信息 - 类似于functools.lru_cache.cache_info
如果您只想维护一个特定于函数的本地缓存,可以简单地将一个标志传递给装饰器
import reckon
@reckon.memoize(locale="local")
def some_expensive_func(foo: int, bar: int):
return foo ** bar
此外,如果您希望在一个模块内保持本地缓存,您可以初始化自己的 LocalCache
对象实例。
import reckon
cache = reckon.local()
@cache.memoize
def some_expensive_func(foo: int, bar: int):
return foo ** bar
本地缓存实例维护与全局缓存相同的高级API用于管理。
LocalCache.clear
:清除本地缓存。LocalCache.shrink
:缩小本地缓存。LocalCache.usage
:检查当前的使用率。LocalCache.set_usage
:设置本地缓存的最大内存使用率。LocalCache.info
:查看缓存的高级信息 - 类似于functools.lru_cache.cache_info
。
所有被缓存的功能都可以通过 cache
属性来查看它们的缓存。
文档
完整文档即将推出!
如何贡献
- 查找开放的问题或创建一个新的问题来开始围绕功能想法或错误的讨论。
- 在GitHub上为您的issue创建一个分支,或者复制GitHub上的存储库,以开始对 master 分支进行更改。
- 编写一个测试来显示错误已被修复或功能按预期工作。
- 发送一个pull请求,并持续打扰维护者,直到它被合并并发布。 :)
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
reckon-0.2.0.tar.gz (8.2 kB 查看哈希值)
构建分发
reckon-0.2.0-py2.py3-none-any.whl (8.7 kB 查看哈希值)
关闭
reckon-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e6133d72a076869ad7f46f8aee12277d3f0d874ad4eae0a05fe33f6536dde027 |
|
MD5 | 7dd075baa9659ccf8075bf58747c2e7b |
|
BLAKE2b-256 | aca68e339445d9b11e30d57fd764b3082a006d4d093215787f12a6a6bfc9cd96 |
关闭
reckon-0.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1812389b46f46cf8fa96654a798c43495ef50cd155cc3e90b7c24929c628c7b6 |
|
MD5 | 327d25e4d0e23f60675b01497fd0b37f |
|
BLAKE2b-256 | 0f4f723513cac87843ab2387c699d61ceecbc23ba98eab3c19c2ab1b21cd33e0 |