no changes to the code, only fixed stuff denounced by `pep8 *py` --- bindings/python/notmuch/__init__.py | 2 +- bindings/python/notmuch/database.py | 28 +++++++++++++++---------- bindings/python/notmuch/globals.py | 38 +++++++++++++++++++++++++++++++--- bindings/python/notmuch/thread.py | 1 - 4 files changed, 52 insertions(+), 17 deletions(-)
diff --git a/bindings/python/notmuch/__init__.py b/bindings/python/notmuch/__init__.py index 539afed..f3ff987 100644 --- a/bindings/python/notmuch/__init__.py +++ b/bindings/python/notmuch/__init__.py @@ -69,7 +69,7 @@ from notmuch.globals import ( TagTooLongError, UnbalancedFreezeThawError, UnbalancedAtomicError, - NotInitializedError + NotInitializedError, ) from notmuch.version import __VERSION__ __LICENSE__ = "GPL v3+" diff --git a/bindings/python/notmuch/database.py b/bindings/python/notmuch/database.py index 25b4b1b..ca17273 100644 --- a/bindings/python/notmuch/database.py +++ b/bindings/python/notmuch/database.py @@ -27,6 +27,7 @@ from notmuch.thread import Threads from notmuch.message import Messages, Message from notmuch.tag import Tags + class Database(object): """The :class:`Database` is the highest-level object that notmuch provides. It references a notmuch database, and can be opened in @@ -83,12 +84,14 @@ class Database(object): """ notmuch_database_find_message""" _find_message = nmlib.notmuch_database_find_message - _find_message.argtypes = [NotmuchDatabaseP, c_char_p, POINTER(NotmuchMessageP)] + _find_message.argtypes = [NotmuchDatabaseP, c_char_p, + POINTER(NotmuchMessageP)] _find_message.restype = c_uint """notmuch_database_find_message_by_filename""" _find_message_by_filename = nmlib.notmuch_database_find_message_by_filename - _find_message_by_filename.argtypes = [NotmuchDatabaseP, c_char_p, POINTER(NotmuchMessageP)] + _find_message_by_filename.argtypes = [NotmuchDatabaseP, c_char_p, + POINTER(NotmuchMessageP)] _find_message_by_filename.restype = c_uint """notmuch_database_get_all_tags""" @@ -177,8 +180,8 @@ class Database(object): :param status: Open the database in read-only or read-write mode :type status: :attr:`MODE` :returns: Nothing - :exception: Raises :exc:`NotmuchError` in case - of any failure (possibly after printing an error message on stderr). + :exception: Raises :exc:`NotmuchError` in case of any failure + (possibly after printing an error message on stderr). """ res = Database._open(_str(path), mode) @@ -293,12 +296,12 @@ class Database(object): (creating it if it does not exist(?)) .. warning:: This call needs a writeable database in - :attr:`Database.MODE`.READ_WRITE mode. The underlying library will exit the - program if this method is used on a read-only database! + :attr:`Database.MODE`.READ_WRITE mode. The underlying library will + exit the program if this method is used on a read-only database! :param path: An unicode string containing the path relative to the path - of database (see :meth:`get_path`), or else should be an absolute path - with initial components that match the path of 'database'. + of database (see :meth:`get_path`), or else should be an absolute + path with initial components that match the path of 'database'. :returns: :class:`Directory` or raises an exception. :exception: :exc:`NotmuchError` with :attr:`STATUS`.FILE_ERROR @@ -325,7 +328,8 @@ class Database(object): return Directory(_str(abs_dirpath), dir_p, self) _add_message = nmlib.notmuch_database_add_message - _add_message.argtypes = [NotmuchDatabaseP, c_char_p, POINTER(NotmuchMessageP)] + _add_message.argtypes = [NotmuchDatabaseP, c_char_p, + POINTER(NotmuchMessageP)] _add_message.restype = c_uint def add_message(self, filename, sync_maildir_flags=False): @@ -490,7 +494,8 @@ class Database(object): """Returns :class:`Tags` with a list of all tags found in the database :returns: :class:`Tags` - :execption: :exc:`NotmuchError` with :attr:`STATUS`.NULL_POINTER on error + :execption: :exc:`NotmuchError` with :attr:`STATUS`.NULL_POINTER + on error """ self._assert_db_is_initialized() tags_p = Database._get_all_tags(self._db) @@ -748,7 +753,8 @@ class Directory(object): _get_child_directories.restype = NotmuchFilenamesP def _assert_dir_is_initialized(self): - """Raises a NotmuchError(:attr:`STATUS`.NOT_INITIALIZED) if dir_p is None""" + """Raises a NotmuchError(:attr:`STATUS`.NOT_INITIALIZED) + if dir_p is None""" if self._dir_p is None: raise NotmuchError(STATUS.NOT_INITIALIZED) diff --git a/bindings/python/notmuch/globals.py b/bindings/python/notmuch/globals.py index 36354fc..f5c8d52 100644 --- a/bindings/python/notmuch/globals.py +++ b/bindings/python/notmuch/globals.py @@ -89,6 +89,7 @@ Invoke the class method `notmuch.STATUS.status2str` with a status value as argument to receive a human readable string""" STATUS.__name__ = 'STATUS' + class NotmuchError(Exception): """Is initiated with a (notmuch.STATUS[, message=None]). It will not return an instance of the class NotmuchError, but a derived instance @@ -97,7 +98,8 @@ class NotmuchError(Exception): @classmethod def get_exc_subclass(cls, status): - """Returns a fine grained Exception() type,detailing the error status""" + """Returns a fine grained Exception() type, + detailing the error status""" subclasses = { STATUS.OUT_OF_MEMORY: OutOfMemoryError, STATUS.READ_ONLY_DATABASE: ReadOnlyDatabaseError, @@ -109,7 +111,7 @@ class NotmuchError(Exception): STATUS.TAG_TOO_LONG: TagTooLongError, STATUS.UNBALANCED_FREEZE_THAW: UnbalancedFreezeThawError, STATUS.UNBALANCED_ATOMIC: UnbalancedAtomicError, - STATUS.NOT_INITIALIZED: NotInitializedError + STATUS.NOT_INITIALIZED: NotInitializedError, } assert 0 < status <= len(subclasses) return subclasses[status] @@ -125,7 +127,7 @@ class NotmuchError(Exception): # no 'status' or cls is subclass already, return 'cls' instance if not status or cls != NotmuchError: return super(NotmuchError, cls).__new__(cls) - subclass = cls.get_exc_subclass(status) # which class to use? + subclass = cls.get_exc_subclass(status) # which class to use? return subclass.__new__(subclass, *args, **kwargs) def __init__(self, status=None, message=None): @@ -140,28 +142,49 @@ class NotmuchError(Exception): else: return 'Unknown error' + # List of Subclassed exceptions that correspond to STATUS values and are # subclasses of NotmuchError. class OutOfMemoryError(NotmuchError): status = STATUS.OUT_OF_MEMORY + + class ReadOnlyDatabaseError(NotmuchError): status = STATUS.READ_ONLY_DATABASE + + class XapianError(NotmuchError): status = STATUS.XAPIAN_EXCEPTION + + class FileError(NotmuchError): status = STATUS.FILE_ERROR + + class FileNotEmailError(NotmuchError): status = STATUS.FILE_NOT_EMAIL + + class DuplicateMessageIdError(NotmuchError): status = STATUS.DUPLICATE_MESSAGE_ID + + class NullPointerError(NotmuchError): status = STATUS.NULL_POINTER + + class TagTooLongError(NotmuchError): status = STATUS.TAG_TOO_LONG + + class UnbalancedFreezeThawError(NotmuchError): status = STATUS.UNBALANCED_FREEZE_THAW + + class UnbalancedAtomicError(NotmuchError): status = STATUS.UNBALANCED_ATOMIC + + class NotInitializedError(NotmuchError): """Derived from NotmuchError, this occurs if the underlying data structure (e.g. database is not initialized (yet) or an iterator has @@ -170,7 +193,6 @@ class NotInitializedError(NotmuchError): status = STATUS.NOT_INITIALIZED - def _str(value): """Ensure a nicely utf-8 encoded string to pass to libnotmuch @@ -187,34 +209,42 @@ class NotmuchDatabaseS(Structure): pass NotmuchDatabaseP = POINTER(NotmuchDatabaseS) + class NotmuchQueryS(Structure): pass NotmuchQueryP = POINTER(NotmuchQueryS) + class NotmuchThreadsS(Structure): pass NotmuchThreadsP = POINTER(NotmuchThreadsS) + class NotmuchThreadS(Structure): pass NotmuchThreadP = POINTER(NotmuchThreadS) + class NotmuchMessagesS(Structure): pass NotmuchMessagesP = POINTER(NotmuchMessagesS) + class NotmuchMessageS(Structure): pass NotmuchMessageP = POINTER(NotmuchMessageS) + class NotmuchTagsS(Structure): pass NotmuchTagsP = POINTER(NotmuchTagsS) + class NotmuchDirectoryS(Structure): pass NotmuchDirectoryP = POINTER(NotmuchDirectoryS) + class NotmuchFilenamesS(Structure): pass NotmuchFilenamesP = POINTER(NotmuchFilenamesS) diff --git a/bindings/python/notmuch/thread.py b/bindings/python/notmuch/thread.py index d903c76..dbd6c0f 100644 --- a/bindings/python/notmuch/thread.py +++ b/bindings/python/notmuch/thread.py @@ -247,7 +247,6 @@ class Thread(object): raise NotmuchError(STATUS.NOT_INITIALIZED) return Thread._get_thread_id(self._thread) - _get_total_messages = nmlib.notmuch_thread_get_total_messages _get_total_messages.argtypes = [NotmuchThreadP] _get_total_messages.restype = c_int -- 1.7.4.1 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch