Skip to main content

Python port of CoalescingRingBuffer from LMAXCollections

Project description

Build status

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coalringbuf-0.1.0.tar.gz (3.6 kB view details)

Uploaded Source

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

Hashes for coalringbuf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dbba01d1b8e5dc08a91baba458ad6ff2dc9b67f17895c51774afe515caf8c375
MD5 5f914b94150b9716e9436378d4b1e336
BLAKE2b-256 352d61c3c1791575f5abc54917eccb5ca4be9fc7e3fd3fb4d3371019e1694fa0

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page