python: add new errors
authorJustus Winter <4winter@informatik.uni-hamburg.de>
Thu, 24 Dec 2015 11:51:30 +0000 (12:51 +0100)
committerJustus Winter <4winter@informatik.uni-hamburg.de>
Fri, 8 Jan 2016 12:58:33 +0000 (13:58 +0100)
Add support for the new notmuch status codes UNSUPPORTED_OPERATION,
UPGRADE_REQUIRED, and PATH_ERROR.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
bindings/python/docs/source/status_and_errors.rst
bindings/python/notmuch/__init__.py
bindings/python/notmuch/errors.py

index dd6e31f802a28e651e03efb137d173df93466a60..68913f160beb06166cd58c1e2c0448613c987dff 100644 (file)
@@ -47,5 +47,11 @@ The following exceptions are all directly derived from NotmuchError. Each of the
    :members:
 .. autoexception:: UnbalancedAtomicError(message=None)
    :members:
+.. autoexception:: UnsupportedOperationError(message=None)
+   :members:
+.. autoexception:: UpgradeRequiredError(message=None)
+   :members:
+.. autoexception:: PathError(message=None)
+   :members:
 .. autoexception:: NotInitializedError(message=None)
    :members:
index 5561624e11d72b365854588d6fab6a71d1a7d1bd..29416a5b25bc014716b55d55771370065e2c1252 100644 (file)
@@ -75,6 +75,9 @@ from .errors import (
     UnbalancedFreezeThawError,
     UnbalancedAtomicError,
     NotInitializedError,
+    UnsupportedOperationError,
+    UpgradeRequiredError,
+    PathError,
 )
 from .version import __VERSION__
 __LICENSE__ = "GPL v3+"
index f153a9c5bcf5c8c9c8e6ee05600eb4ffe998dd82..abca51d738516226a1fce04366f54cb8b362cd83 100644 (file)
@@ -56,6 +56,9 @@ STATUS = Status(['SUCCESS',
   'TAG_TOO_LONG',
   'UNBALANCED_FREEZE_THAW',
   'UNBALANCED_ATOMIC',
+  'UNSUPPORTED_OPERATION',
+  'UPGRADE_REQUIRED',
+  'PATH_ERROR',
   'NOT_INITIALIZED'])
 """STATUS is a class, whose attributes provide constants that serve as return
 indicators for notmuch functions. Currently the following ones are defined. For
@@ -73,6 +76,9 @@ description.
   * TAG_TOO_LONG
   * UNBALANCED_FREEZE_THAW
   * UNBALANCED_ATOMIC
+  * UNSUPPORTED_OPERATION
+  * UPGRADE_REQUIRED
+  * PATH_ERROR
   * NOT_INITIALIZED
 
 Invoke the class method `notmuch.STATUS.status2str` with a status value as
@@ -101,6 +107,9 @@ class NotmuchError(Exception, Python3StringMixIn):
             STATUS.TAG_TOO_LONG: TagTooLongError,
             STATUS.UNBALANCED_FREEZE_THAW: UnbalancedFreezeThawError,
             STATUS.UNBALANCED_ATOMIC: UnbalancedAtomicError,
+            STATUS.UNSUPPORTED_OPERATION: UnsupportedOperationError,
+            STATUS.UPGRADE_REQUIRED: UpgradeRequiredError,
+            STATUS.PATH_ERROR: PathError,
             STATUS.NOT_INITIALIZED: NotInitializedError,
         }
         assert 0 < status <= len(subclasses)
@@ -175,6 +184,18 @@ class UnbalancedAtomicError(NotmuchError):
     status = STATUS.UNBALANCED_ATOMIC
 
 
+class UnsupportedOperationError(NotmuchError):
+    status = STATUS.UNSUPPORTED_OPERATION
+
+
+class UpgradeRequiredError(NotmuchError):
+    status = STATUS.UPGRADE_REQUIRED
+
+
+class PathError(NotmuchError):
+    status = STATUS.PATH_ERROR
+
+
 class NotInitializedError(NotmuchError):
     """Derived from NotmuchError, this occurs if the underlying data
     structure (e.g. database is not initialized (yet) or an iterator has