class SlackToolkitError(Exception): """Base class for all Slack toolkit errors.""" class PaginationTimeoutError(SlackToolkitError): """Raised when a timeout occurs during pagination.""" def __init__(self, timeout_seconds: int): self.timeout_seconds = timeout_seconds super().__init__(f"The pagination process timed out after {timeout_seconds} seconds.") class ItemNotFoundError(SlackToolkitError): """Raised when an item is not found.""" class UsernameNotFoundError(SlackToolkitError): """Raised when a user is not found by the username searched""" def __init__(self, usernames_found: list[str], username_not_found: str) -> None: self.usernames_found = usernames_found self.username_not_found = username_not_found class ConversationNotFoundError(SlackToolkitError): """Raised when a conversation is not found""" class DirectMessageConversationNotFoundError(ConversationNotFoundError): """Raised when a direct message conversation searched is not found"""