_destroy = nmlib.notmuch_database_destroy
_destroy.argtypes = [NotmuchDatabaseP]
- _destroy.restype = None
+ _destroy.restype = c_uint
def __del__(self):
if self._db:
- self._destroy(self._db)
+ status = self._destroy(self._db)
+ if status != STATUS.SUCCESS:
+ raise NotmuchError(status)
def _assert_db_is_initialized(self):
"""Raises :exc:`NotInitializedError` if self._db is `None`"""
"already has an open one.")
db = NotmuchDatabaseP()
- status = Database._create(_str(path), Database.MODE.READ_WRITE, byref(db))
+ status = Database._create(_str(path), byref(db))
if status != STATUS.SUCCESS:
raise NotmuchError(status)
_close = nmlib.notmuch_database_close
_close.argtypes = [NotmuchDatabaseP]
- _close.restype = None
+ _close.restype = c_uint
def close(self):
'''
NotmuchError.
'''
if self._db:
- self._close(self._db)
+ status = self._close(self._db)
+ if status != STATUS.SUCCESS:
+ raise NotmuchError(status)
def __enter__(self):
'''
"""
return Query(self, querystring)
+ """notmuch_database_status_string"""
+ _status_string = nmlib.notmuch_database_status_string
+ _status_string.argtypes = [NotmuchDatabaseP]
+ _status_string.restype = c_char_p
+
+ def status_string(self):
+ """Returns the status string of the database
+
+ This is sometimes used for additional error reporting
+ """
+ self._assert_db_is_initialized()
+ s = Database._status_string(self._db)
+ if s:
+ return s.decode('utf-8', 'ignore')
+ return s
+
def __repr__(self):
return "'Notmuch DB " + self.get_path() + "'"
raise NotmuchError(message="No DB path specified"
" and no user default found")
return config.get('database', 'path')
-
- @property
- def db_p(self):
- """Property returning a pointer to `notmuch_database_t` or `None`
-
- .. deprecated:: 0.14
- If you really need a pointer to the notmuch
- database object use the `_pointer` field. This
- alias will be removed in notmuch 0.15.
- """
- return self._db