Resolve common folder properties (inbox/sent/spam/...) for a session.
Source code in email_profile/clients/imap/folders.py
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138 | class FolderAccess:
"""Resolve common folder properties (inbox/sent/spam/...) for a session."""
def __init__(self, session: ImapClient) -> None:
self._session = session
def mailboxes(self) -> list[str]:
self._session.require()
return list(self._session.mailboxes)
def mailbox(self, name: str) -> MailBox:
self._session.require()
if name not in self._session.mailboxes:
raise KeyError(
f"Unknown mailbox: {name!r}. Available: {self.mailboxes()}"
)
return self._session.mailboxes[name]
def _find(self, hints: tuple[str, ...]) -> MailBox:
self._session.require()
mb = find_mailbox(self._session.mailboxes, hints)
if mb is None:
raise KeyError(
f"Could not find a mailbox matching {hints!r}. "
f"Available: {self.mailboxes()}"
)
return mb
@property
def inbox(self) -> MailBox:
return self._find(INBOX_HINTS)
@property
def sent(self) -> MailBox:
return self._find(SENT_HINTS)
@property
def spam(self) -> MailBox:
return self._find(SPAM_HINTS)
@property
def trash(self) -> MailBox:
return self._find(TRASH_HINTS)
@property
def drafts(self) -> MailBox:
return self._find(DRAFTS_HINTS)
@property
def archive(self) -> MailBox:
return self._find(ARCHIVE_HINTS)
|
__init__(session)
Source code in email_profile/clients/imap/folders.py
| def __init__(self, session: ImapClient) -> None:
self._session = session
|
mailbox(name)
Source code in email_profile/clients/imap/folders.py
98
99
100
101
102
103
104 | def mailbox(self, name: str) -> MailBox:
self._session.require()
if name not in self._session.mailboxes:
raise KeyError(
f"Unknown mailbox: {name!r}. Available: {self.mailboxes()}"
)
return self._session.mailboxes[name]
|
mailboxes()
Source code in email_profile/clients/imap/folders.py
| def mailboxes(self) -> list[str]:
self._session.require()
return list(self._session.mailboxes)
|