def _assert_db_is_initialized(self):
"""Raises a NotmuchError in case self._db is still None"""
if self._db is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
def create(self, path):
"""Creates a new notmuch database
res = Database._open(_str(path), mode)
if res is None:
- raise NotmuchError(
- message="Could not open the specified database")
+ raise NotmuchError(message="Could not open the specified database")
self._db = res
def get_path(self):
:returns: :attr:`STATUS`.SUCCESS or raises
- :exception: :exc:`NotmuchError` :attr:`STATUS`.XAPIAN_EXCEPTION::
+ :exception: :exc:`NotmuchError`:
+ :attr:`STATUS`.XAPIAN_EXCEPTION
+ Xapian exception occurred; atomic section not entered.
- A Xapian exception occurred; atomic section not
- entered."""
+ *Added in notmuch 0.9*"""
self._assert_db_is_initialized()
status = nmlib.notmuch_database_begin_atomic(self._db)
if status != STATUS.SUCCESS:
- raise NotmuchError(status)
+ raise NotmuchError.get_subclass_exc(status)
return status
def end_atomic(self):
A Xapian exception occurred; atomic section not
ended.
:attr:`STATUS`.UNBALANCED_ATOMIC:
- end_atomic has been called more times than begin_atomic."""
+ end_atomic has been called more times than begin_atomic.
+
+ *Added in notmuch 0.9*"""
self._assert_db_is_initialized()
status = nmlib.notmuch_database_end_atomic(self._db)
if status != STATUS.SUCCESS:
- raise NotmuchError(status)
+ raise NotmuchError.get_subclass_exc(status)
return status
def get_directory(self, path):
# we got an absolute path
if not path.startswith(self.get_path()):
# but its initial components are not equal to the db path
- raise NotmuchError(STATUS.FILE_ERROR,
+ raise NotmuchError.get_subclass_exc(STATUS.FILE_ERROR,
message="Database().get_directory() called "
"with a wrong absolute path.")
abs_dirpath = path
byref(msg_p))
if not status in [STATUS.SUCCESS, STATUS.DUPLICATE_MESSAGE_ID]:
- raise NotmuchError(status)
+ raise NotmuchError.get_subclass_exc(status)
#construct Message() and return
msg = Message(msg_p, self)
* No message is found with the given filename
* An out-of-memory situation occurs
- * A Xapian exception occurs"""
+ * A Xapian exception occurs
+
+ *Added in notmuch 0.9*"""
self._assert_db_is_initialized()
msg_p = Database._find_message_by_filename(self._db, _str(filename))
return msg_p and Message(msg_p, self) or None
self._assert_db_is_initialized()
tags_p = Database._get_all_tags(self._db)
if tags_p == None:
- raise NotmuchError(STATUS.NULL_POINTER)
+ raise NotmuchError.get_subclass_exc(STATUS.NULL_POINTER)
return Tags(tags_p, self)
def create_query(self, querystring):
(too little memory)
"""
if db.db_p is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
# create reference to parent db to keep it alive
self._db = db
# create query, return None if too little mem available
query_p = Query._create(db.db_p, _str(querystr))
if query_p is None:
- raise NotmuchError(STATUS.NULL_POINTER)
+ raise NotmuchError.get_subclass_exc(STATUS.NULL_POINTER)
self._query = query_p
def set_sort(self, sort):
been initialized.
"""
if self._query is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
self.sort = sort
nmlib.notmuch_query_set_sort(self._query, sort)
* :attr:`STATUS`.NULL_POINTER if search_threads failed
"""
if self._query is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
threads_p = Query._search_threads(self._query)
* :attr:`STATUS`.NULL_POINTER if search_messages failed
"""
if self._query is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
msgs_p = Query._search_messages(self._query)
if msgs_p is None:
- raise NotmuchError(STATUS.NULL_POINTER)
+ raise NotmuchError.get_subclass_exc(STATUS.NULL_POINTER)
return Messages(msgs_p, self)
* :attr:`STATUS`.NOT_INITIALIZED if query is not inited
"""
if self._query is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
return Query._count_messages(self._query)
def _assert_dir_is_initialized(self):
"""Raises a NotmuchError(:attr:`STATUS`.NOT_INITIALIZED) if dir_p is None"""
if self._dir_p is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
def __init__(self, path, dir_p, parent):
"""
if status == STATUS.SUCCESS:
return
#fail with Exception otherwise
- raise NotmuchError(status)
+ raise NotmuchError.get_subclass_exc(status)
def get_mtime(self):
"""Gets the mtime value of this directory in the database
def next(self):
if self._files_p is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
if not nmlib.notmuch_filenames_valid(self._files_p):
self._files_p = None
for file in files: print file
"""
if self._files_p is None:
- raise NotmuchError(STATUS.NOT_INITIALIZED)
+ raise NotmuchError.get_subclass_exc(STATUS.NOT_INITIALIZED)
i = 0
while nmlib.notmuch_filenames_valid(self._files_p):