跳转到主要内容

reckon: 简单至极,动态缓存。

项目描述

reckon: 简单至极,动态记忆化

image image image image image codecov Code style: black

安装

为了安装最新版本,只需运行 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 属性来查看它们的缓存。

文档

完整文档即将推出!

如何贡献

  1. 查找开放的问题或创建一个新的问题来开始围绕功能想法或错误的讨论。
  2. 在GitHub上为您的issue创建一个分支,或者复制GitHub上的存储库,以开始对 master 分支进行更改。
  3. 编写一个测试来显示错误已被修复或功能按预期工作。
  4. 发送一个pull请求,并持续打扰维护者,直到它被合并并发布。 :)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

reckon-0.2.0.tar.gz (8.2 kB 查看哈希值)

上传时间

构建分发

reckon-0.2.0-py2.py3-none-any.whl (8.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面