25 lines
655 B
Python
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
|