跳转到主要内容

一个通过缓存和延迟评估来保持相互依赖值之间一致性的机制。

项目描述

新闻

Cellulose 0.2有一些向后不兼容的更改。请查看README以获取更多信息。

从0.1.2到0.2的变更日志

* All tests pass with Python 2.5.
* ComputedCell is now thread safe.
* ComputedDict is now a little more friendly for subclassing.
* The 'restrictions' functionality has been moved into it's own set of classes.
* InputCellDescriptor will now take a default value.
* Cell descriptors in general are easier to subclass.
* DependantCell.dependency_changed now takes the dependency as an argument.

销售方案(我不是销售员)

Cellulose提供了一种通过缓存和延迟评估来保持相互依赖值之间一致性的机制。

你可以将其想象成电子表格程序——许多单元格的值是根据其他单元格的值计算得出的。当一个单元格发生变化时,所有依赖的单元格都会用新值更新。

然而,Cellulose做得更多。它保证当读取一个值时,它与它依赖的所有值一致。它还懒(即高效。)计算一个值被推迟到最后一刻,并且只有在绝对需要时才会重新计算。

依赖发现和缓存失效是完全透明和自动的。这大大减少了软件中的主要错误来源。

项目的目标是尽可能简单(但不是更简单),以便任何想要认真使用它的人都能轻松理解其内部结构。

Cellulose在目的上类似于PyCells,但在某种程度上是‘更低层’的。它尽力不干扰你,但因此,缺乏PyCells提供的一些辅助工具。最重要的算法差异可能是Cellulose非常希望保持懒加载,而PyCells默认情况下所有计算都是立即进行的。(从另一方面来看,PyCells中的观察者要容易处理得多。)

由以下组织支持

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