Python port of CoalescingRingBuffer from LMAXCollections
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file coalringbuf-0.1.0.tar.gz
.
File metadata
- Download URL: coalringbuf-0.1.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbba01d1b8e5dc08a91baba458ad6ff2dc9b67f17895c51774afe515caf8c375 |
|
MD5 | 5f914b94150b9716e9436378d4b1e336 |
|
BLAKE2b-256 | 352d61c3c1791575f5abc54917eccb5ca4be9fc7e3fd3fb4d3371019e1694fa0 |