Apckeyl_RealESRGAN / priority_queue.py
evgeniy778's picture
Create priority_queue.py
08e17bd verified
Raw
History Blame Contribute Delete
1.39 kB
# =====================================================
# Apckeyl_RealESRGAN
# Version 1.0
# priority_queue.py
# =====================================================
from collections import deque
class PriorityQueue:
"""
Priority Queue.
Управляет очередью обработки.
Владелец проекта всегда имеет
максимальный приоритет.
Version 1.0
"""
def __init__(self):
self.queue = deque()
# -------------------------------------------------
def clear(self):
self.queue.clear()
# -------------------------------------------------
def size(self):
return len(
self.queue
)
# -------------------------------------------------
def add(
self,
task,
owner=False,
):
"""
owner=True
означает владельца проекта.
Его задачи всегда идут первыми.
"""
if owner:
self.queue.appendleft(
task
)
else:
self.queue.append(
task
)
# -------------------------------------------------
def get_next(self):
if not self.queue:
return None
return self.queue.popleft()