]> git.notmuchmail.org Git - notmuch/blobdiff - bindings/python/notmuch/tag.py
python: refactor the error handling machinery
[notmuch] / bindings / python / notmuch / tag.py
index d0f7bb402f2c4ddaa2dda4533fd07ba2428bf5fb..526e51cd3c2697af207d5ff1c7b5ec293cd5b85d 100644 (file)
@@ -17,7 +17,13 @@ along with notmuch.  If not, see <http://www.gnu.org/licenses/>.
 Copyright 2010 Sebastian Spaeth <Sebastian@SSpaeth.de>'
 """
 from ctypes import c_char_p
-from notmuch.globals import nmlib, STATUS, NotmuchError, NotmuchTagsP, Python3StringMixIn
+from notmuch.globals import (
+    nmlib,
+    Python3StringMixIn,
+    NullPointerError,
+    NotInitializedError,
+    NotmuchTagsP,
+)
 
 
 class Tags(Python3StringMixIn):
@@ -29,9 +35,9 @@ class Tags(Python3StringMixIn):
     Do note that the underlying library only provides a one-time
     iterator (it cannot reset the iterator to the start). Thus iterating
     over the function will "exhaust" the list of tags, and a subsequent
-    iteration attempt will raise a :exc:`NotmuchError`
-    STATUS.NOT_INITIALIZED. Also note, that any function that uses
-    iteration (nearly all) will also exhaust the tags. So both::
+    iteration attempt will raise a :exc:`NotInitializedError`.
+    Also note, that any function that uses iteration (nearly all) will
+    also exhaust the tags. So both::
 
       for tag in tags: print tag
 
@@ -60,8 +66,8 @@ class Tags(Python3StringMixIn):
              will almost never instantiate a :class:`Tags` object
              herself. They are usually handed back as a result,
              e.g. in :meth:`Database.get_all_tags`.  *tags_p* must be
-             valid, we will raise an :exc:`NotmuchError`
-             (STATUS.NULL_POINTER) if it is `None`.
+             valid, we will raise an :exc:`NullPointerError` if it is
+             `None`.
         :type tags_p: :class:`ctypes.c_void_p`
         :param parent: The parent object (ie :class:`Database` or
              :class:`Message` these tags are derived from, and saves a
@@ -71,7 +77,7 @@ class Tags(Python3StringMixIn):
                cache the tags in the Python object(?)
         """
         if not tags_p:
-            raise NotmuchError(STATUS.NULL_POINTER)
+            raise NullPointerError()
 
         self._tags = tags_p
         #save reference to parent object so we keep it alive
@@ -91,7 +97,7 @@ class Tags(Python3StringMixIn):
 
     def __next__(self):
         if not self._tags:
-            raise NotmuchError(STATUS.NOT_INITIALIZED)
+            raise NotInitializedError()
         if not self._valid(self._tags):
             self._tags = None
             raise StopIteration
@@ -118,8 +124,8 @@ class Tags(Python3StringMixIn):
 
             As this iterates over the tags, we will not be able to iterate over
             them again (as in retrieve them)! If the tags have been exhausted
-            already, this will raise a :exc:`NotmuchError`
-            STATUS.NOT_INITIALIZED on subsequent attempts.
+            already, this will raise a :exc:`NotInitializedError`on subsequent
+            attempts.
         """
         return " ".join(self)