implement Query.set_sort() and sort notmuch dump by message id
authorSebastian Spaeth <sebastian@sspaeth.de>
Tue, 16 Mar 2010 15:20:47 +0000 (16:20 +0100)
committerSebastian Spaeth <sebastian@sspaeth.de>
Tue, 16 Mar 2010 15:20:47 +0000 (16:20 +0100)
--HG--
extra : transplant_source : 1%BC%F3%ED%3C%C7c%0EFh%06%B6L%7C%8E%8F%EF%A2%8E%A8

cnotmuch/database.py
notmuch

index 8d6124cbc9e816a227b5d7dfeeaa3006519f44b3..09af0df964d15822e2606d76a64a68454fd2c9ba 100644 (file)
@@ -185,6 +185,16 @@ class Query(object):
             NotmuchError(STATUS.NULL_POINTER)
         self._query = query_p
 
+    def set_sort(self, sort):
+        """notmuch_query_set_sort
+
+        :param sort: one of Query.SORT_OLDEST_FIRST|SORT_NEWEST_FIRST|SORT_MESSAGE_ID
+        :returns: Nothing, but raises NotmuchError if query is not inited
+        """
+        if self._query is None:
+            raise NotmuchError(STATUS.NOT_INITIALIZED)
+
+        nmlib.notmuch_query_set_sort(self._query, sort)
 
     def search_messages(self):
         """notmuch_query_search_messages
diff --git a/notmuch b/notmuch
index 172464c10bc3009383aac01a01db4f5990281ec1..478aed3ab0108fd79fac1d524fbcf03623b68e42 100755 (executable)
--- a/notmuch
+++ b/notmuch
@@ -135,15 +135,16 @@ if __name__ == '__main__':
          querystr = quote_query_line(sys.argv[2:])
          logging.debug("search-term "+querystr)
          db = Database()
-         q  = Query(db,querystr)
-         #TODO: notmuch_query_set_sort (query, NOTMUCH_SORT_MESSAGE_ID);
-         m = q.search_messages()
+         m  = Query(db,querystr).search_messages()
          print("\n".join([t for t in m.collect_tags()]))
 
    elif sys.argv[1] == 'dump':
+      #TODO: implement "dump <filename>"
       db = Database()
-      msgs = Query(db,'').search_messages()
-      for msg in msgs:
+      q = Query(db,'')
+      q.set_sort(Query.SORT_MESSAGE_ID)
+      m = q.search_messages()
+      for msg in m:
          print("%s (%s)" % (msg.get_message_id(), msg.get_tags()))
 
    else: