30 lines
748 B
Python
30 lines
748 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from email.message import EmailMessage
|
|
from typing import Iterator
|
|
|
|
|
|
@dataclass
|
|
class MailQueue:
|
|
messages: list[EmailMessage] = field(default_factory=list)
|
|
|
|
def add_mail(self, message: EmailMessage) -> None:
|
|
self.messages.append(message)
|
|
|
|
def remove_mail(self, message: EmailMessage) -> bool:
|
|
if message in self.messages:
|
|
self.messages.remove(message)
|
|
return True
|
|
return False
|
|
|
|
@property
|
|
def mail_count(self) -> int:
|
|
return len(self.messages)
|
|
|
|
def is_empty(self) -> bool:
|
|
return not self.messages
|
|
|
|
def __iter__(self) -> Iterator[EmailMessage]:
|
|
return iter(self.messages)
|