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