具有对象事件的ZODB文件夹实现
项目描述
repoze.folder
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)
添加使用 tox 和 jenkins 进行持续集成的支持。
添加 'setup.py dev' 别名(运行 setup.py develop 并安装 nose 和 coverage)。
迁移到 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,则不会发送文件夹事件 (``IObjectWillBeAddedEvent 和 IObjectAddedEvent)。
添加一个 remove 方法,它执行与 __delitem__ 相同的操作。它还提供一个名为 send_events 的标志,默认为 True。如果当调用 add` 时为 False,则不会发送文件夹事件 (``IObjectWillBeRemovedEvent 和 IObjectRemovedEvent)。
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75ffd225533c42f4a1a14074eb6778a4580128d84cf7a5fb98b4e80bfb068b23 |
|
MD5 | f9d1a633741a7b167892ff6e864a9eb5 |
|
BLAKE2b-256 | 3e565d67bfc10bf6ee1736f6812dc5f17f04d786ccf3f51d0284dbfed6d01f1f |