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:
>>> 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.
Release files for coalringbuf 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| coalringbuf-0.1.0.tar.gz | 3.6 kB | Details |
Release files / coalringbuf-0.1.0.tar.gz
| Download URL | coalringbuf-0.1.0.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dbba01d1b8e5dc08a91baba458ad6ff2dc9b67f17895c51774afe515caf8c375
|
|
BLAKE2b-256 checksum How to use checksums |
352d61c3c1791575f5abc54917eccb5ca4be9fc7e3fd3fb4d3371019e1694fa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |