import Music import pickle class MusicQueue(): queue = [] def __init__(self): self.queue = [] def push(self, element: Music): self.queue.append(element) def pop(self): self.queue.pop(0) def front(self) -> Music: return self.queue[0] def clear(self): self.queue = [] def elevate(self, target: Music): # elevate target to 1st place self.queue.remove(target) self.queue.insert(0, target) def find(self, target: Music) -> Music or None: for i in self.queue: if i == target: return i return None def count(self, target: Music): count = 0 for i in self.queue: if i == target: count += 1 return count def findAndElevate(self, target: Music): target = self.find(target) if target is not None: self.elevate(target) def delete(self, target: Music): target = self.find(target) if target is not None: self.queue.remove(target) def size(self): return len(self.queue) def dict(self): return [i.dict() for i in self.queue] def __str__(self): return str(self.queue) def dump(self): return pickle.dumps(self.queue) def load(self, data: bytes): self.queue = pickle.loads(data)