Fast single ended queue library for python
Project description
fastqueue
Single ended fast queue's built in C tuned for python.
Requirements
python 3.9+
Installation
To install fastqueue, using pip:
pip install fastqueue-lib
Quickstart
For general use cases fastqueue.Queue()
objects are tuned to perform well.
The enqueue and dequeue methods perform well over a large sequence of arbitrary operations.
fastqueue.Queue()
supports many standard sequence methods similar to lists.
fastqueue.Queue()
minimizes memory usage but maintains the fast queue speeds.
>>> from fastqueue import Queue
>>> queue = Queue()
>>> queue.extend(['🚒', '🛴'])
>>> queue[0]
'🚒'
>>> '🛴' in queue
True
>>> queue.enqueue('🚅')
>>> queue.enqueue('🚗')
>>> queue[-1]
'🚗'
>>> [queue.dequeue() for _ in range(len(queue)) ]
['🚒', '🛴', '🚅', '🚗']
For more specialized cases fastqueue.QueueC()
objects are tuned to perform well.
The interface for fastqueue.QueueC()
is identical to fastqueue.Queue()
.
The enqueue and dequeue methods perform similarly well over a large sequence of arbitrary operations.
fastqueue.QueueC()
handles memory differently by doubling the capacity when full.
This increases the complexity but maintains fast amortized cost.
The benefit of this approach is even faster __getitem__
and __setitem__
speeds
>>> from fastqueue import QueueC
>>> queue_c = QueueC()
>>> queue_c.extend(['🚒', '🛴'])
>>> queue_c[0]
'🚒'
>>> '🛴' in queue_c
True
>>> queue_c.enqueue('🚅')
>>> queue_c.enqueue('🚗')
>>> queue_c[-1]
'🚗'
>>> [queue_c.dequeue() for _ in range(len(queue_c)) ]
['🚒', '🛴', '🚅', '🚗']
Another alternative is fastqueue.LockQueue()
which supports all queue operations.
fastqueue.LockQueue()
is built as a thread-safe alternative to the other queue types.
Example Benchmarks
Queue operations
Ubuntu
Windows
Iteration
Ubuntu
Windows
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
Built Distribution
File details
Details for the file fastqueue-lib-0.0.8.tar.gz
.
File metadata
- Download URL: fastqueue-lib-0.0.8.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee3bc8cc1f3cf9b9fac374b66437c4e70ce6621d9fa79e3944d255a194718a2d |
|
MD5 | 09dc4470acebb05340806e57d6699129 |
|
BLAKE2b-256 | e9adc0b005e75a58ccc5ab669dc67ad93d87b7e19472940cf79bf44cb7a3212d |
File details
Details for the file fastqueue_lib-0.0.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
.
File metadata
- Download URL: fastqueue_lib-0.0.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
- Upload date:
- Size: 61.4 kB
- Tags: CPython 3.9, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 152ec9371ce1aa86643772fc56cc9c3992a6095c59ea874635ffc77dacd626a7 |
|
MD5 | cfb3cda5739f0cd0777d8f8b8bd37e28 |
|
BLAKE2b-256 | 1b03a782206552593be97071ff64f176e8f55bc035a4b396a00744394d571506 |