emmental/emmental/listenbrainz/task.py

25 lines
655 B
Python

# Copyright 2024 (c) Anna Schumaker.
"""Our ListenBrainz operation priority queue."""
class Queue:
"""A queue for prioritizing ListenBrainz operations."""
def __init__(self):
"""Initialize the task Queue."""
self._set_token = None
def clear(self, op: str) -> None:
"""Clear a pending operation."""
self._set_token = None
def push(self, op: str, *args) -> None:
"""Push an operation onto the queue."""
self._set_token = (op, *args)
def pop(self) -> tuple:
"""Pop an operation off the queue."""
res = self._set_token
self._set_token = None
return res