from mypy_boto3_sqs.type_defs import MessageTypeDef from src.worker.connectors.aws import sqs def receive_message(*, queue_url: str) -> MessageTypeDef | None: response = sqs.receive_message(QueueUrl=queue_url, MaxNumberOfMessages=1) messages = response.get("Messages", []) return messages[0] if messages else None def release_message(*, queue_url: str, message: MessageTypeDef) -> None: sqs.change_message_visibility( QueueUrl=queue_url, ReceiptHandle=message["ReceiptHandle"], VisibilityTimeout=0, ) def delete_message(*, queue_url: str, message: MessageTypeDef) -> None: sqs.delete_message(QueueUrl=queue_url, ReceiptHandle=message["ReceiptHandle"])