mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-01-18 09:15:56 +01:00
python: Do not implicitely call maildir_flags_to_tags etc
In order to remain consistent with the underlying C API, we do not
automatically synchronize notmuch tags and maildir flags anymore.
The underlying functions Message.maildir_flags_to_tags and
Message.tags_to_maildir_flags still exist and are available to the user.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
(cherry picked from commit e59eaa5ddd
)
This commit is contained in:
parent
dd544f5dc6
commit
76399e5f73
2 changed files with 31 additions and 23 deletions
|
@ -261,10 +261,10 @@ class Database(object):
|
||||||
# return the Directory, init it with the absolute path
|
# return the Directory, init it with the absolute path
|
||||||
return Directory(abs_dirpath, dir_p, self)
|
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
|
"""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
|
database (see :meth:`get_path`), or else should be an absolute
|
||||||
filename with initial components that match the path of the
|
filename with initial components that match the path of the
|
||||||
database.
|
database.
|
||||||
|
@ -274,8 +274,12 @@ class Database(object):
|
||||||
notmuch database will reference the filename, and will not copy the
|
notmuch database will reference the filename, and will not copy the
|
||||||
entire contents of the file.
|
entire contents of the file.
|
||||||
|
|
||||||
If the message contains Maildir flags, we will -depending on the
|
:param sync_maildir_flags: If the message contains Maildir
|
||||||
notmuch configuration- sync those tags to initial notmuch tags.
|
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
|
:returns: On success, we return
|
||||||
|
|
||||||
|
@ -317,8 +321,10 @@ class Database(object):
|
||||||
if not status in [STATUS.SUCCESS, STATUS.DUPLICATE_MESSAGE_ID]:
|
if not status in [STATUS.SUCCESS, STATUS.DUPLICATE_MESSAGE_ID]:
|
||||||
raise NotmuchError(status)
|
raise NotmuchError(status)
|
||||||
|
|
||||||
#construct Message(), sync initial tags from Maildir flags and return
|
#construct Message() and return
|
||||||
msg = Message(msg_p, self)
|
msg = Message(msg_p, self)
|
||||||
|
#automatic sync initial tags from Maildir flags
|
||||||
|
if sync_maildir_flags:
|
||||||
msg.maildir_flags_to_tags()
|
msg.maildir_flags_to_tags()
|
||||||
return (msg, status)
|
return (msg, status)
|
||||||
|
|
||||||
|
|
|
@ -470,7 +470,7 @@ class Message(object):
|
||||||
raise NotmuchError(STATUS.NULL_POINTER)
|
raise NotmuchError(STATUS.NULL_POINTER)
|
||||||
return Tags(tags_p, self)
|
return Tags(tags_p, self)
|
||||||
|
|
||||||
def add_tag(self, tag, sync_maildir_flags=True):
|
def add_tag(self, tag, sync_maildir_flags=False):
|
||||||
"""Adds a tag to the given message
|
"""Adds a tag to the given message
|
||||||
|
|
||||||
Adds a tag to the current message. The maximal tag length is defined in
|
Adds a tag to the current message. The maximal tag length is defined in
|
||||||
|
@ -480,11 +480,11 @@ class Message(object):
|
||||||
|
|
||||||
:param sync_maildir_flags: If notmuch configuration is set to do
|
:param sync_maildir_flags: If notmuch configuration is set to do
|
||||||
this, add maildir flags corresponding to notmuch tags. See
|
this, add maildir flags corresponding to notmuch tags. See
|
||||||
:meth:`tags_to_maildir_flags`. Use False if you want to
|
underlying method :meth:`tags_to_maildir_flags`. Use False
|
||||||
add/remove many tags on a message without having to
|
if you want to add/remove many tags on a message without
|
||||||
physically rename the file every time. Do note, that this
|
having to physically rename the file every time. Do note,
|
||||||
will do nothing when a message is frozen, as tag changes
|
that this will do nothing when a message is frozen, as tag
|
||||||
will not be committed to the database yet.
|
changes will not be committed to the database yet.
|
||||||
|
|
||||||
:returns: STATUS.SUCCESS if the tag was successfully added.
|
:returns: STATUS.SUCCESS if the tag was successfully added.
|
||||||
Raises an exception otherwise.
|
Raises an exception otherwise.
|
||||||
|
@ -514,7 +514,7 @@ class Message(object):
|
||||||
self.tags_to_maildir_flags()
|
self.tags_to_maildir_flags()
|
||||||
return STATUS.SUCCESS
|
return STATUS.SUCCESS
|
||||||
|
|
||||||
def remove_tag(self, tag, sync_maildir_flags=True):
|
def remove_tag(self, tag, sync_maildir_flags=False):
|
||||||
"""Removes a tag from the given message
|
"""Removes a tag from the given message
|
||||||
|
|
||||||
If the message has no such tag, this is a non-operation and
|
If the message has no such tag, this is a non-operation and
|
||||||
|
@ -523,11 +523,11 @@ class Message(object):
|
||||||
:param tag: String with a 'tag' to be removed.
|
:param tag: String with a 'tag' to be removed.
|
||||||
:param sync_maildir_flags: If notmuch configuration is set to do
|
:param sync_maildir_flags: If notmuch configuration is set to do
|
||||||
this, add maildir flags corresponding to notmuch tags. See
|
this, add maildir flags corresponding to notmuch tags. See
|
||||||
:meth:`tags_to_maildir_flags`. Use False if you want to
|
underlying method :meth:`tags_to_maildir_flags`. Use False
|
||||||
add/remove many tags on a message without having to
|
if you want to add/remove many tags on a message without
|
||||||
physically rename the file every time. Do note, that this
|
having to physically rename the file every time. Do note,
|
||||||
will do nothing when a message is frozen, as tag changes
|
that this will do nothing when a message is frozen, as tag
|
||||||
will not be committed to the database yet.
|
changes will not be committed to the database yet.
|
||||||
|
|
||||||
:returns: STATUS.SUCCESS if the tag was successfully removed or if
|
:returns: STATUS.SUCCESS if the tag was successfully removed or if
|
||||||
the message had no such tag.
|
the message had no such tag.
|
||||||
|
@ -559,12 +559,13 @@ class Message(object):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def remove_all_tags(self, sync_maildir_flags=True):
|
def remove_all_tags(self, sync_maildir_flags=False):
|
||||||
"""Removes all tags from the given message.
|
"""Removes all tags from the given message.
|
||||||
|
|
||||||
See :meth:`freeze` for an example showing how to safely
|
See :meth:`freeze` for an example showing how to safely
|
||||||
replace tag values.
|
replace tag values.
|
||||||
|
|
||||||
|
|
||||||
:param sync_maildir_flags: If notmuch configuration is set to do
|
:param sync_maildir_flags: If notmuch configuration is set to do
|
||||||
this, add maildir flags corresponding to notmuch tags. See
|
this, add maildir flags corresponding to notmuch tags. See
|
||||||
:meth:`tags_to_maildir_flags`. Use False if you want to
|
:meth:`tags_to_maildir_flags`. Use False if you want to
|
||||||
|
@ -703,8 +704,9 @@ class Message(object):
|
||||||
Also, if this filename is in a directory named "new", rename it
|
Also, if this filename is in a directory named "new", rename it
|
||||||
to be within the neighboring directory named "cur".
|
to be within the neighboring directory named "cur".
|
||||||
|
|
||||||
Usually, you do not need to call this manually as
|
Do note that calling this method while a message is frozen might
|
||||||
tag changing methods should be implicitly calling it.
|
not work yet, as the modified tags have not been committed yet
|
||||||
|
to the database.
|
||||||
|
|
||||||
:returns: a :class:`STATUS`. In short, you want to see
|
:returns: a :class:`STATUS`. In short, you want to see
|
||||||
notmuch.STATUS.SUCCESS here. See there for details."""
|
notmuch.STATUS.SUCCESS here. See there for details."""
|
||||||
|
@ -730,8 +732,8 @@ class Message(object):
|
||||||
is, the flags from the multiple filenames are combined with the
|
is, the flags from the multiple filenames are combined with the
|
||||||
logical OR operator.)
|
logical OR operator.)
|
||||||
|
|
||||||
Usually, you do not need to call this manually as
|
As a convenience, you can set the sync_maildir_flags parameter in
|
||||||
:meth:`Database.add_message` implicitly calls it.
|
:meth:`Database.add_message` to implicitly call this.
|
||||||
|
|
||||||
:returns: a :class:`STATUS`. In short, you want to see
|
:returns: a :class:`STATUS`. In short, you want to see
|
||||||
notmuch.STATUS.SUCCESS here. See there for details."""
|
notmuch.STATUS.SUCCESS here. See there for details."""
|
||||||
|
|
Loading…
Reference in a new issue