mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-23 03:18:08 +01:00
55f1971437
Message() basically has get_message_id get_filename get_tags Plus various bullet proofing and bug fixing. --HG-- extra : transplant_source : O%3B1%EB%E0%D4pYrEY_%E3%0E%BA%C23%11a%B0
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from ctypes import CDLL, c_char_p, c_int
|
|
#package-global instance of the notmuch library
|
|
#TODO: lazy load this on first access?
|
|
nmlib = CDLL('/usr/local/lib/libnotmuch.so')
|
|
|
|
class STATUS(object):
|
|
SUCCESS = 0
|
|
OUT_OF_MEMORY = 1
|
|
READ_ONLY_DATABASE = 2
|
|
XAPIAN_EXCEPTION = 3
|
|
FILE_ERROR = 4
|
|
FILE_NOT_EMAIL = 5
|
|
DUPLICATE_MESSAGE_ID = 6
|
|
NULL_POINTER = 7
|
|
TAG_TOO_LONG = 8
|
|
UNBALANCED_FREEZE_THAW = 9
|
|
NOT_INITIALIZED = 10
|
|
|
|
"""Get a string representation of a notmuch_status_t value."""
|
|
status2str = nmlib.notmuch_status_to_string
|
|
status2str.restype = c_char_p
|
|
status2str.argtypes = [c_int]
|
|
|
|
def __init__(self, status):
|
|
self._status = status
|
|
|
|
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):
|
|
def __init__(self, status=None, message=None):
|
|
"""Is initiated with a (notmuch.STATUS[,message=None])"""
|
|
super(NotmuchError, self).__init__(message, status)
|
|
|
|
def __str__(self):
|
|
if self.args[0] is not None: return self.args[0]
|
|
else: return str(STATUS(self.args[1]))
|