From: Sebastian Spaeth Date: Wed, 28 Sep 2011 16:27:44 +0000 (+0200) Subject: python: Add database_find_message_by_filename bindings X-Git-Tag: 0.9~44 X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=2c76279cdac96249ffcaa88456675c1cf4a2163d;p=obsolete%2Fnotmuch-old python: Add database_find_message_by_filename bindings Add it :-) Signed-off-by: Sebastian Spaeth --- 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