diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2003-11-10 06:44:44 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2003-11-10 06:44:44 (GMT) |
commit | d8921379e9ce1b4133ba54feab9ea0b3d641c94d (patch) | |
tree | 8d3c0aff39e22e1763372c3462d04a6533daf8b6 | |
parent | 49ee14dac5da2249f0f55f00190a9b9f01d23642 (diff) | |
download | cpython-d8921379e9ce1b4133ba54feab9ea0b3d641c94d.zip cpython-d8921379e9ce1b4133ba54feab9ea0b3d641c94d.tar.gz cpython-d8921379e9ce1b4133ba54feab9ea0b3d641c94d.tar.bz2 |
Patch #798297: Add IMAP THREAD command.
-rw-r--r-- | Doc/lib/libimaplib.tex | 22 | ||||
-rw-r--r-- | Lib/imaplib.py | 11 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 4 |
4 files changed, 38 insertions, 0 deletions
diff --git a/Doc/lib/libimaplib.tex b/Doc/lib/libimaplib.tex index 27e493b..2ebd0c1 100644 --- a/Doc/lib/libimaplib.tex +++ b/Doc/lib/libimaplib.tex @@ -355,6 +355,28 @@ msgnums = M.search(None, '(FROM "LDJ")') Subscribe to new mailbox. \end{methoddesc} +\begin{methoddesc}{thread}{threading_algorithm, charset, search_criterion\optional{, ...}} + The \code{thread} command is a variant of \code{search} with threading semantics for + the results. Returned data contains a space + separated list of thread members. + + Thread members consist of zero or more messages numbers, delimited by spaces, + indicating successive parent and child. + + Thread has two arguments before the \var{search_criterion} + argument(s); a \var{threading_algorithm}, and the searching \var{charset}. + Note that unlike \code{search}, the searching \var{charset} argument is mandatory. + There is also a \code{uid thread} command which corresponds to \code{thread} the way + that \code{uid search} corresponds to \code{search}. + The \code{thread} command first searches the mailbox for messages that + match the given searching criteria using the charset argument for + the interpretation of strings in the searching criteria. It thren + returns the matching messages threaded according to the specified + threading algorithm. + + This is an \samp{IMAP4rev1} extension command. \versionadded{2.4} +\end{methoddesc} + \begin{methoddesc}{uid}{command, arg\optional{, ...}} Execute command args with messages identified by UID, rather than message number. Returns response appropriate to command. At least diff --git a/Lib/imaplib.py b/Lib/imaplib.py index d9166e0..8004982 100644 --- a/Lib/imaplib.py +++ b/Lib/imaplib.py @@ -69,6 +69,7 @@ Commands = { 'STATUS': ('AUTH', 'SELECTED'), 'STORE': ('SELECTED',), 'SUBSCRIBE': ('AUTH', 'SELECTED'), + 'THREAD': ('SELECTED',), 'UID': ('SELECTED',), 'UNSUBSCRIBE': ('AUTH', 'SELECTED'), } @@ -679,6 +680,16 @@ class IMAP4: return self._simple_command('SUBSCRIBE', mailbox) + def thread(self, threading_algorithm, charset, *search_criteria): + """IMAPrev1 extension THREAD command. + + (type, [data]) = <instance>.thread(threading_alogrithm, charset, search_criteria, ...) + """ + name = 'THREAD' + typ, dat = self._simple_command(name, threading_algorithm, charset, *search_criteria) + return self._untagged_response(typ, dat, name) + + def uid(self, command, *args): """Execute "command arg ..." with messages identified by UID, rather than message number. @@ -137,6 +137,7 @@ John DeGood Vincent Delft Roger Dev Toby Dickenson +Yves Dionne Daniel Dittmar Walter Dörwald Jaromir Dolecek @@ -57,6 +57,8 @@ Core and builtins Extension modules ----------------- +- os.getsid was added. + - The pwd module incorrectly advertised its struct type as struct_pwent; this has been renamed to struct_passwd. (The old name is still supported for backwards compatibility.) @@ -104,6 +106,8 @@ Extension modules Library ------- +- imaplib.IMAP4.thread was added. + - Plugged a minor hole in tempfile.mktemp() due to the use of os.path.exists(), switched to using os.lstat() directly if possible. |