File size: 592 Bytes
1f1b4db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from collections import deque
from typing import Optional
from api.chat.chat_api import ChatAPI
from .base import ChatQueueBase

class DequeQueue(ChatQueueBase):
    def __init__(self):
        self.queue = deque()
        
    async def add(self, api_key: str) -> None:
        self.queue.append(ChatAPI(api_key=api_key))
        
    async def get(self) -> Optional[ChatAPI]:
        if not self.queue:
            return None
        chat = self.queue.popleft()
        self.queue.append(chat)
        return chat
        
    async def length(self) -> int:
        return len(self.queue)