from ctypes import CDLL, c_char_p, c_int
+from ctypes.util import find_library
+
+#-----------------------------------------------------------------------------
#package-global instance of the notmuch library
#TODO: lazy load this on first access?
-nmlib = CDLL('/usr/local/lib/libnotmuch.so')
+so = find_library('notmuch')
+if so is None:
+ raise ImportError("Could not find shared 'notmuch' library.")
+nmlib = CDLL(so)
+#-----------------------------------------------------------------------------
class STATUS(object):
SUCCESS = 0
NULL_POINTER = 7
TAG_TOO_LONG = 8
UNBALANCED_FREEZE_THAW = 9
- LAST_STATUS = 10
+ NOT_INITIALIZED = 10
"""Get a string representation of a notmuch_status_t value."""
status2str = nmlib.notmuch_status_to_string
def __str__(self):
"""Get a string representation of a notmuch_status_t value."""
+ # define strings for custom error messages
+ if self._status == STATUS.NOT_INITIALIZED:
+ return "Operation on uninitialized DB/MSG/THREAD impossible."
return str(STATUS.status2str(self._status))
class NotmuchError(Exception):