From 2c76279cdac96249ffcaa88456675c1cf4a2163d Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Wed, 28 Sep 2011 18:27:44 +0200 Subject: [PATCH] python: Add database_find_message_by_filename bindings Add it :-) Signed-off-by: Sebastian Spaeth --- bindings/python/notmuch/database.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/bindings/python/notmuch/database.py b/bindings/python/notmuch/database.py index dc124f5e..da1ed047 100644 --- a/bindings/python/notmuch/database.py +++ b/bindings/python/notmuch/database.py @@ -63,6 +63,10 @@ class Database(object): _find_message = nmlib.notmuch_database_find_message _find_message.restype = c_void_p + """notmuch_database_find_message_by_filename""" + _find_message_by_filename = nmlib.notmuch_database_find_message_by_filename + _find_message_by_filename.restype = c_void_p + """notmuch_database_get_all_tags""" _get_all_tags = nmlib.notmuch_database_get_all_tags _get_all_tags.restype = c_void_p @@ -291,7 +295,7 @@ class Database(object): STATUS.DUPLICATE_MESSAGE_ID Message has the same message ID as another message already in the database. The new filename was successfully added - to the message in the database. + to the list of the filenames for the existing message. :rtype: 2-tuple(:class:`Message`, STATUS) @@ -329,7 +333,7 @@ class Database(object): return (msg, status) def remove_message(self, filename): - """Removes a message from the given notmuch database + """Removes a message (filename) from the given notmuch database Note that only this particular filename association is removed from the database. If the same message (as determined by the message ID) @@ -387,6 +391,20 @@ class Database(object): msg_p = Database._find_message(self._db, _str(msgid)) return msg_p and Message(msg_p, self) or None + def find_message_by_filename(self, filename): + """Find a message with the given filename + + :returns: If the database contains a message with the given + filename, then a class:`Message:` is returned. This + function returns None in the following situations: + + * No message is found with the given filename + * An out-of-memory situation occurs + * A Xapian exception occurs""" + self._verify_initialized_db() + msg_p = Database._find_message_by_filename(self._db, _str(filename)) + return msg_p and Message(msg_p, self) or None + def get_all_tags(self): """Returns :class:`Tags` with a list of all tags found in the database -- 2.26.2