Notice!
PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities.
Create your free Platform account
to download ActivePython or customize Python with the packages you require and get automatic updates.
Download
ActivePython
INSTALL>
pypm install coalringbuf
How to install coalringbuf
- Download and install ActivePython
- Open Command Prompt
- Type
pypm install coalringbuf
| Python 2.7 | Python 3.2 | Python 3.3 |
---|
Windows (32-bit) | | | |
---|
Windows (64-bit) | | | |
---|
Mac OS X (10.5+) | | | |
---|
Linux (32-bit) | | | |
---|
Linux (64-bit) | | | |
---|
Lastest release
version 0.1.0 on Jul 29th, 2013
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.
Status
It's usable and it passes port of original test suite. It's currently based on LMAXCollections 1.1.0.
Usage
This port mimics original CoalescingRingBuffer API as closely as possible, however it was modified to make it more Pythonic.
Example intepreter session:
System Message: ERROR/3 (<string>, line 27)
Unknown directive type "code-block".
.. code-block:: python
>>> 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
- implement performance tests
- provide more efficient bucket class if needed
Copyright
Original implementation (C) LMAX/Nick Zeeb.
Python implementation (C) 2013 Jakub Stasiak.
This project is licensed under MIT license, see LICENSE file for details.