Skip to main content

An asynchronous queue for requesting data

Project description

Requeue

In applications that receive messages, like chat bots, where you run callbacks on incoming messages, you might want to capture follow-up messages within a callback. A request queue allows you to do that.

Examples

from requeue import Requeue
queue = Requeue()

Where the messages come in and are processed;

async def run_callbacks(message):
    # If the message completes a request, since it is forwarded,
    # it should not continue to be handled by the callbacks.
    if await queue.complete(message):
        continue

    # If no request was completed, the message can be processed as usual.
    for callback in client.callbacks:
        await callback(message)

Inside a callback, to request and await an incoming message, you use wait_for. To only accept a message that meets specific criteria, you can pass a function as a filter to the check parameter.

@client.callback
async def on_message(message):
    # An example of a knock knock joke back-and-forth,
    # using the request queue to pick out the responses

    if message == 'Knock knock!':
        await client.send("Who's there?")
        who = await queue.wait_for()
        await client.send(f'{who} who?')
        punchline = await queue.wait_for()
        await punchline.react('😂')

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

requeue-0.2.0.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

requeue-0.2.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file requeue-0.2.0.tar.gz.

File metadata

  • Download URL: requeue-0.2.0.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for requeue-0.2.0.tar.gz
Algorithm Hash digest
SHA256 01a6da39f1ebc989817c508262ca44b4b5f3da2cfee8899c8aa6cdc69eac8eb4
MD5 8b42f9937602ddd219eb7f08300d010e
BLAKE2b-256 484559254624f5a091583bc138c5b887334d31971bb88028354a7d2db7be48ca

See more details on using hashes here.

File details

Details for the file requeue-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: requeue-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for requeue-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e99ec517046a13bacf227400154b041ca1823b6ba8eac042ee036070a5bcafd
MD5 aae9669fcade4fc678f24650e86e7592
BLAKE2b-256 82c1cea121b91b7babe04f2c8ecce343c6b1f55e3b7617193fe1462124c028be

See more details on using hashes here.

Supported by

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