# ===================================================== # 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()