LMAXCollections中的CoalescingRingBuffer的Python端口
项目描述
coalringbuf 是来自 LMAXCollections 的 CoalescingRingBuffer 的 Python 端口。 coalringbuf 与
CPython 2.x >= 2.5, 3.x >= 3.2
PyPy 1.9+
支持的平台:平台无关。
状态
它是可用的,并且通过了原始测试套件的端口。它目前基于 LMAXCollections 1.1.0。
使用方法
此端口尽可能地模仿原始 CoalescingRingBuffer API,但它被修改得更像 Pythonic。
示例解释器会话
>>> from coalringbuf import CoalescingRingBuffer
>>> buffer = CoalescingRingBuffer(3)
>>> buffer.capacity
4
>>> buffer.empty
True
>>> buffer.offer('something')
True
>>> buffer.empty
False
>>> buffer.offer('something else')
True
>>> buffer.offer('quack')
True
>>> buffer.offer('id', 'value')
True
>>> buffer.size
4
>>> buffer.full
True
>>> buffer.offer('id', 'this will overwrite "value"')
True
>>> buffer.size
4
>>> buffer.offer('this will be rejected')
False
>>> buffer.size
4
>>> bucket = []
>>> buffer.poll(bucket)
4
>>> bucket
['something', 'something else', 'quack', 'this will overwrite "value"']
>>> buffer.empty
True
TODO
实现性能测试
如果需要,提供更有效的桶类
版权
Python实现(C) 2013 Jakub Stasiak。
本项目采用MIT许可,有关详细信息请参阅LICENSE文件。