python: provide a Database.close function
authorJustus Winter <4winter@informatik.uni-hamburg.de>
Wed, 15 Feb 2012 21:25:13 +0000 (22:25 +0100)
committerJustus Winter <4winter@informatik.uni-hamburg.de>
Wed, 15 Feb 2012 21:25:13 +0000 (22:25 +0100)
Rename Database.__del__ to Database.close, move it just below the open
function and call close() in a newly created destructor just below the
constructor.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
bindings/python/notmuch/database.py

index 36b65ecb7ba767af2d079ac39a7a1b91a60a2192..d0e38ddab8c0f7b276c46ab8d5b463f0436dbd05 100644 (file)
@@ -142,6 +142,9 @@ class Database(object):
         else:
             self.create(path)
 
+    def __del__(self):
+        self.close()
+
     def _assert_db_is_initialized(self):
         """Raises :exc:`NotInitializedError` if self._db is `None`"""
         if self._db is None:
@@ -193,6 +196,16 @@ class Database(object):
             raise NotmuchError(message="Could not open the specified database")
         self._db = res
 
+    _close = nmlib.notmuch_database_close
+    _close.argtypes = [NotmuchDatabaseP]
+    _close.restype = None
+
+    def close(self):
+        """Close and free the notmuch database if needed"""
+        if self._db is not None:
+            self._close(self._db)
+            self._db = None
+
     def get_path(self):
         """Returns the file path of an open database"""
         self._assert_db_is_initialized()
@@ -531,15 +544,6 @@ class Database(object):
     def __repr__(self):
         return "'Notmuch DB " + self.get_path() + "'"
 
-    _close = nmlib.notmuch_database_close
-    _close.argtypes = [NotmuchDatabaseP]
-    _close.restype = None
-
-    def __del__(self):
-        """Close and free the notmuch database if needed"""
-        if self._db is not None:
-            self._close(self._db)
-
     def _get_user_default_db(self):
         """ Reads a user's notmuch config and returns his db location