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)