notmuch database will reference the filename, and will not copy the
entire contents of the file.
+ If the message contains Maildir flags, we will -depending on the
+ notmuch configuration- sync those tags to initial notmuch tags.
+
:returns: On success, we return
1) a :class:`Message` object that can be used for things
filename,
byref(msg_p))
- if not status in [STATUS.SUCCESS,STATUS.DUPLICATE_MESSAGE_ID]:
+ if not status in [STATUS.SUCCESS, STATUS.DUPLICATE_MESSAGE_ID]:
raise NotmuchError(status)
- #construct Message() and return
+ #construct Message(), sync initial tags from Maildir flags and return
msg = Message(msg_p, self)
+ msg.maildir_flags_to_tags()
return (msg, status)
def remove_message(self, filename):
:param msgid: The message ID
:type msgid: string
- :returns: :class:`Message` or `None` if no message is found or if an
- out-of-memory situation occurs.
+ :returns: :class:`Message` or `None` if no message is found or
+ if any xapian exception or out-of-memory situation
+ occurs. Do note that Xapian Exceptions include
+ "Database modified" situations, e.g. when the
+ notmuch database has been modified by
+ another program in the meantime. A return value of
+ `None` is therefore no guarantee that the message
+ does not exist.
:exception: :exc:`NotmuchError` with STATUS.NOT_INITIALIZED if
the database was not intitialized.
"""
other unexpected behavior. See above for more details.
"""
# constants
- SORT = Enum(['OLDEST_FIRST','NEWEST_FIRST','MESSAGE_ID'])
+ SORT = Enum(['OLDEST_FIRST','NEWEST_FIRST','MESSAGE_ID', 'UNSORTED'])
"""Constants: Sort order in which to return results"""
"""notmuch_query_create"""