跳转到主要内容

具有对象事件的ZODB文件夹实现

项目描述

repoze.folder

https://travis-ci.org/repoze/repoze.folder.png?branch=master Documentation Status

repoze.folder 提供了一个带有对象事件支持的裸骨ZODB文件夹实现。文件夹具有类似字典的接口,并在执行某些接口方法时在对象的添加和删除上发出“对象事件”。

文件夹对象基于BTree代码,因此只要您持久化它们,文件夹应该能够有效地包含许多对象。

变更

1.0 (2014-12-28)

  • 添加对PyPy的支持。

  • 添加对Python 3.2、3.3和3.4的支持。

  • 添加对Travis上的测试支持。

  • 停止对Python 2.4和2.5的支持。

0.6.3 (2012-03-29)

  • 添加使用 toxjenkins 进行持续集成的支持。

  • 添加 'setup.py dev' 别名(运行 setup.py develop 并安装 nosecoverage)。

  • 迁移到 GitHub。

0.6.2 (2010-10-04)

  • 修复由于使用 _order 作为元组导致的迭代错误。

0.6.1 (2010-10-01)

  • 修复在添加或删除项目时支持排序的持久化错误。

0.6 (2010-09-30)

  • 支持在文件夹中排序项目。

0.5 (2010/09/04)

  • 使 remove 返回被删除的对象。

  • 添加 pop 方法。

0.4 (2009/06/15)

  • 100% 测试覆盖率。

  • 添加一个 add 方法,它执行与 __setitem__ 相同的操作。它还提供一个名为 send_events 的标志,默认为 True。如果当调用 add 时为 False,则不会发送文件夹事件 (``IObjectWillBeAddedEventIObjectAddedEvent)。

  • 添加一个 remove 方法,它执行与 __delitem__ 相同的操作。它还提供一个名为 send_events 的标志,默认为 True。如果当调用 add` 时为 False,则不会发送文件夹事件 (``IObjectWillBeRemovedEventIObjectRemovedEvent)。

0.3.5 (2009/1/8)

  • __setitem____delitem__ 操作期间,将 BTrees.Length 对象添加到尚未拥有的文件夹中(这是一个“进化”步骤;拥有长度对象对于性能有益)。

0.3.4 (2009/1/8)

  • 修复了接近 self._num_objects.change(1) 的向后兼容性错误(AttributeError: 'NoneType' object has no attribute 'change')。

0.3.3 (2009/1/6)

  • unicodify 添加测试,并使有关从字节字符串(和错误消息)到 Unicode 的便捷转换的文档更清晰。

  • 现在,无论将什么传递给文件夹的构造函数,我们都会尝试将其转换为 OOBTree(之前将其设置为实例上的 data,没有任何转换)。

  • repoze.folder.Folder 实例添加了一个 __len__ 方法。它返回文件夹中子对象的数量。

  • 为新创建的 repoze.folder.Folder 实例设置了一个 _num_objects 属性。这是一个 BTrees.Length.Length 对象。我们管理这个长度对象,以便为 __len__ 方法提供一个返回值,而不是使用文件夹的底层 OOBTree.__len__ 方法(查询 btree 的长度可能非常昂贵)。添加了一个等于 None 的 _num_objects 类属性,为已经持久化的、没有有意义长度属性的对象提供向后兼容性提示。

  • 实现不再关心广告修改事件(IObjectModifiedEvent)。

0.3.2 (2008/12/13)

  • 是的。0.3.1 另一个 brownbag,因为我们需要在尝试使用 utf-8 解码之前尝试将 ASCII 解码为 Unicode。

0.3.1 (2008/12/13)

  • 错误地从文件夹实现中删除了 __parent____name__ 属性,使 0.3 成为 brownbag。

0.3 (2008/12/13)

向后不兼容性

  • 当使用与现有对象相同名称的 __setitem__ 添加新对象时,现在会引发 KeyError,而不是静默替换项目。

  • 接受 name 参数的 API 方法(__setitem____getitem__get__contains____delitem__)现在在执行方法暗示的操作之前,会尝试使用 utf-8 编码将字节字符串解码为 Unicode。

  • 以前,可以存储 ASCII 字节字符串或 Unicode 对象作为键值。现在所有键值在存储之前都转换为 Unicode。

0.2.1 (2008/10/31)

  • 从 IFolder 接口中删除 __init__

0.2 (2008/10/22)

  • 更新 Sphinx 文档,使用接口

  • 将文件夹 __name__ 添加到输出中文件夹的 repr 和 str。

0.1 (2008/10/13)

  • 初始发布。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

repoze.folder-1.0.tar.gz (24.3 kB 查看哈希值)

上传时间

由以下机构支持