Skip to content

jpetrucciani/qoo

Repository files navigation

image PyPI version Code style: black Python 3.5+ supported Documentation style: archives

qoo is a very simple Amazon SQS client, written in Python. It aims to be much more straight-forward to use than boto3, and specializes only in Amazon SQS, ignoring the rest of the AWS ecosystem.

Features

  • Easier interaction with SQS queues
  • Automatic support for AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_DEFAULT_REGION environment variables.
  • automatic useful message/job metadata

Usage

Installation

pip install qoo

Basic Usage

import qoo

# list SQS queue names
qoo.list_queues()

# get an existing queue
queue = qoo.get("$QUEUE_NAME")

# or create a queue
queue = qoo.create("$QUEUE_NAME")

# send a job, pass info/keys as kwargs
queue.send(info="foo", user_id="test_user")  # etc.

# get an approximate count of messages in the queue
len(queue)                # approximate total messages
queue.approx_not_visible  # approximate number of message in the visibility timeout

# get a job
job = queue.receive(wait_time=1)
job.elapsed      # time between sending the job and receiving it
job.md5_matches  # boolean property to show that the md5 of the job matches what was sent

# and the data from the job is automatically converted into attrs
job.info         # the string "foo"
job.user_id      # the string "test_user"

# delete the job from the SQS queue
job.delete()

Testing

Tests can be run with tox!

# run tests
tox