]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/python/notmuch/thread.py
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / bindings / python / notmuch / thread.py
index 009cb2bfb34c29e77f31d011bf596df593485032..9aa0e08cec90ba212fa481bfc0aac1e26c293509 100644 (file)
@@ -12,7 +12,7 @@ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
 You should have received a copy of the GNU General Public License
-along with notmuch.  If not, see <http://www.gnu.org/licenses/>.
+along with notmuch.  If not, see <https://www.gnu.org/licenses/>.
 
 Copyright 2010 Sebastian Spaeth <Sebastian@SSpaeth.de>
 """
@@ -71,7 +71,7 @@ class Thread(object):
     def __init__(self, thread_p, parent=None):
         """
         :param thread_p: A pointer to an internal notmuch_thread_t
-            Structure.  These are not publically exposed, so a user
+            Structure.  These are not publicly exposed, so a user
             will almost never instantiate a :class:`Thread` object
             herself. They are usually handed back as a result,
             e.g. when iterating through :class:`Threads`. *thread_p*
@@ -128,11 +128,6 @@ class Thread(object):
            in the thread. It will only iterate over the messages in the thread
            which are not replies to other messages in the thread.
 
-           To iterate over all messages in the thread, the caller will need to
-           iterate over the result of :meth:`Message.get_replies` for each
-           top-level message (and do that recursively for the resulting
-           messages, etc.).
-
         :returns: :class:`Messages`
         :raises: :exc:`NotInitializedError` if query is not initialized
         :raises: :exc:`NullPointerError` if search_messages failed
@@ -147,6 +142,28 @@ class Thread(object):
 
         return Messages(msgs_p, self)
 
+    """notmuch_thread_get_messages"""
+    _get_messages = nmlib.notmuch_thread_get_messages
+    _get_messages.argtypes = [NotmuchThreadP]
+    _get_messages.restype = NotmuchMessagesP
+
+    def get_messages(self):
+        """Returns a :class:`Messages` iterator for all messages in 'thread'
+
+        :returns: :class:`Messages`
+        :raises: :exc:`NotInitializedError` if query is not initialized
+        :raises: :exc:`NullPointerError` if get_messages failed
+        """
+        if not self._thread:
+            raise NotInitializedError()
+
+        msgs_p = Thread._get_messages(self._thread)
+
+        if not msgs_p:
+            raise NullPointerError()
+
+        return Messages(msgs_p, self)
+
     _get_matched_messages = nmlib.notmuch_thread_get_matched_messages
     _get_matched_messages.argtypes = [NotmuchThreadP]
     _get_matched_messages.restype = c_int
@@ -228,7 +245,7 @@ class Thread(object):
 
         The :class:`Tags` object is owned by the thread and as such, will only
         be valid for as long as this :class:`Thread` is valid (e.g. until the
-        query from which it derived is explicitely deleted).
+        query from which it derived is explicitly deleted).
 
         :returns: A :class:`Tags` iterator.
         :raises: :exc:`NotInitializedError` if query is not initialized