aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Spaeth <sebastian@sspaeth.de>2010-03-25 13:13:44 +0100
committerSebastian Spaeth <sebastian@sspaeth.de>2010-03-25 13:13:44 +0100
commitbef8bdbd04c37d6eaba4bed573046243de39d899 (patch)
tree37455ea59174388a2dcd08d4a32c936418955114
parentd49f95602728f24b8b0e57c84e32a7d0729b701a (diff)
Implement Database.upgrade() to get the last bit of API. We are complete now.
-rw-r--r--cnotmuch/database.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/cnotmuch/database.py b/cnotmuch/database.py
index 3c142494..c88c21c5 100644
--- a/cnotmuch/database.py
+++ b/cnotmuch/database.py
@@ -36,6 +36,10 @@ class Database(object):
_open = nmlib.notmuch_database_open
_open.restype = c_void_p
+ """notmuch_database_upgrade"""
+ _upgrade = nmlib.notmuch_database_upgrade
+ _upgrade.argtypes = [c_void_p, c_void_p, c_void_p]
+
""" notmuch_database_find_message """
_find_message = nmlib.notmuch_database_find_message
_find_message.restype = c_void_p
@@ -173,6 +177,27 @@ class Database(object):
return notmuch_database_needs_upgrade(self._db)
+ def upgrade(self):
+ """Upgrades the current database
+
+ After opening a database in read-write mode, the client should
+ check if an upgrade is needed (notmuch_database_needs_upgrade) and
+ if so, upgrade with this function before making any modifications.
+
+ NOT IMPLEMENTED: The optional progress_notify callback can be
+ used by the caller to provide progress indication to the
+ user. If non-NULL it will be called periodically with
+ 'progress' as a floating-point value in the range of [0.0
+ .. 1.0] indicating the progress made so far in the upgrade
+ process.
+ """
+ # Raise a NotmuchError if not initialized
+ self._verify_initialized_db()
+
+ status = Database._upgrade (self._db, None, None)
+ #TODO: catch exceptions, document return values and etc
+ return status
+
def get_directory(self, path):
"""Returns a :class:`Directory` of path,
(creating it if it does not exist(?))