aboutsummaryrefslogtreecommitdiffhomepage
path: root/bindings
diff options
context:
space:
mode:
authorGravatar Sebastian Spaeth <Sebastian@SSpaeth.de>2011-09-28 18:27:44 +0200
committerGravatar Sebastian Spaeth <Sebastian@SSpaeth.de>2011-09-28 18:31:36 +0200
commit2c76279cdac96249ffcaa88456675c1cf4a2163d (patch)
tree3bb43645289579b6276083c4e83cc27422521db2 /bindings
parentc83e3ee2599eea7ceffa0f89828752be63b96393 (diff)
python: Add database_find_message_by_filename bindings
Add it :-) Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Diffstat (limited to 'bindings')
-rw-r--r--bindings/python/notmuch/database.py22
1 files 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