coalringbuf is Python port of CoalescingRingBuffer from LMAXCollections. coalringbuf works with:
- CPython 2.x >= 2.5, 3.x >= 3.2
- PyPy 1.9+
Supported platforms: platform independent.
It's usable and it passes port of original test suite. It's currently based on LMAXCollections 1.1.0.
This port mimics original CoalescingRingBuffer API as closely as possible, however it was modified to make it more Pythonic.
Example intepreter session:
>>> 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
- implement performance tests
- provide more efficient bucket class if needed
Python implementation (C) 2013 Jakub Stasiak.
This project is licensed under MIT license, see LICENSE file for details.