From 8582f219624d75440d33e32648ebf1b44c389011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Wed, 1 Nov 2023 20:33:34 +0800 Subject: [PATCH] refactor: Refactor Message transmission & filtering --- metagpt/schema.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/metagpt/schema.py b/metagpt/schema.py index e0d17e0ed..806b0e94e 100644 --- a/metagpt/schema.py +++ b/metagpt/schema.py @@ -229,10 +229,13 @@ class AIMessage(Message): class MessageQueue: + """Message queue which supports asynchronous updates.""" + def __init__(self): self._queue = Queue() def pop(self) -> Message | None: + """Pop one message from queue.""" try: item = self._queue.get_nowait() if item: @@ -242,6 +245,7 @@ class MessageQueue: return None def pop_all(self) -> List[Message]: + """Pop all messages from queue.""" ret = [] while True: msg = self.pop() @@ -251,12 +255,15 @@ class MessageQueue: return ret def push(self, msg: Message): + """Push a message into the queue.""" self._queue.put_nowait(msg) def empty(self): + """Return true if the queue is empty.""" return self._queue.empty() async def save(self) -> str: + """Convert the `MessageQueue` object to a json string.""" if self.empty(): return "[]" @@ -274,6 +281,7 @@ class MessageQueue: @staticmethod def load(self, v) -> "MessageQueue": + """Convert the json string to the `MessageQueue` object.""" q = MessageQueue() try: lst = json.loads(v)