X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=bindings%2Fpython%2Fnotmuch%2Fdatabase.py;h=5deb2a5dc06a62cb8d97096b376baf44812c7648;hp=7f0091de583044b91d696f5646a15075a69c1d88;hb=76399e5f7340e2fefccbd294227976b06ae36e17;hpb=c50524efd523e885f370374e33cd5d5549ed9079 diff --git a/bindings/python/notmuch/database.py b/bindings/python/notmuch/database.py index 7f0091de..5deb2a5d 100644 --- a/bindings/python/notmuch/database.py +++ b/bindings/python/notmuch/database.py @@ -100,6 +100,7 @@ class Database(object): Database._std_db_path = self._get_user_default_db() path = Database._std_db_path + assert isinstance(path, basestring), 'Path needs to be a string or None.' if create == False: self.open(path, mode) else: @@ -260,10 +261,10 @@ class Database(object): # return the Directory, init it with the absolute path return Directory(abs_dirpath, dir_p, self) - def add_message(self, filename): + def add_message(self, filename, sync_maildir_flags=False): """Adds a new message to the database - `filename` should be a path relative to the path of the open + :param filename: should be a path relative to the path of the open database (see :meth:`get_path`), or else should be an absolute filename with initial components that match the path of the database. @@ -273,6 +274,13 @@ class Database(object): notmuch database will reference the filename, and will not copy the entire contents of the file. + :param sync_maildir_flags: If the message contains Maildir + flags, we will -depending on the notmuch configuration- sync + those tags to initial notmuch tags, if set to `True`. It is + `False` by default to remain consistent with the libnotmuch + API. You might want to look into the underlying method + :meth:`Message.maildir_flags_to_tags`. + :returns: On success, we return 1) a :class:`Message` object that can be used for things @@ -310,11 +318,14 @@ class Database(object): 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 msg = Message(msg_p, self) + #automatic sync initial tags from Maildir flags + if sync_maildir_flags: + msg.maildir_flags_to_tags() return (msg, status) def remove_message(self, filename):