Skip to main content

Fast single ended queue library for python

Project description

fastqueue

Tests PyPI Versions PyPI license
PyPI

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)) ]
['🚒', '🛴', '🚅', '🚗']

Example Benchmarks

Queue_times Queue_types

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

fastqueue-lib-0.0.3.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

fastqueue_lib-0.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (50.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.5+ x86-64

File details

Details for the file fastqueue-lib-0.0.3.tar.gz.

File metadata

  • Download URL: fastqueue-lib-0.0.3.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for fastqueue-lib-0.0.3.tar.gz
Algorithm Hash digest
SHA256 bf0ea5db623bd820e88f0589c6a291c9e54f261a7225ed82dde755bf45c2d27f
MD5 01617aba1d09aeb631d46e73bff1658c
BLAKE2b-256 7fa85fdfb0ecb45e8c3ad490940501b58256e23bdc33b3ba2ea13d543ac5e088

See more details on using hashes here.

File details

Details for the file fastqueue_lib-0.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastqueue_lib-0.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9928b5b47023f9bafbacb449bc5f51849a9b1a982cfcef4dc7ce6f96b0d5feca
MD5 e0dc57d1f05f4dbe410dad3fb54eb049
BLAKE2b-256 0e9813de1fd943c83ced798bc99fc0e40317165004064cf03c496ac1f055aba3

See more details on using hashes here.

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