aboutsummaryrefslogtreecommitdiffhomepage
path: root/bindings
diff options
context:
space:
mode:
authorGravatar Justus Winter <4winter@informatik.uni-hamburg.de>2012-01-22 06:14:57 +0100
committerGravatar Justus Winter <4winter@informatik.uni-hamburg.de>2012-01-22 06:14:57 +0100
commit8015cbff263606f009b5750d23b28ee332c25db8 (patch)
treea0af581013ad6cc8f302fb145c2761f593c83772 /bindings
parent871fc32837d1e734895bef5f89040b5b874ae473 (diff)
python: fix error handling
Before 3434d1940 the return values of libnotmuch functions were declared as c_void_p and the code checking for errors compared the returned value to None, which is the ctypes equivalent of a NULL pointer. But said commit wrapped all the data types in python classes and the semantic changed in a subtle way. If a function returns NULL, the wrapped python value is falsish, but no longer equal to None.
Diffstat (limited to 'bindings')
-rw-r--r--bindings/python/notmuch/database.py16
-rw-r--r--bindings/python/notmuch/filename.py2
-rw-r--r--bindings/python/notmuch/message.py6
-rw-r--r--bindings/python/notmuch/tag.py2
-rw-r--r--bindings/python/notmuch/thread.py6
5 files changed, 16 insertions, 16 deletions
diff --git a/bindings/python/notmuch/database.py b/bindings/python/notmuch/database.py
index 24da8e99..6238b289 100644
--- a/bindings/python/notmuch/database.py
+++ b/bindings/python/notmuch/database.py
@@ -168,7 +168,7 @@ class Database(object):
res = Database._create(_str(path), Database.MODE.READ_WRITE)
- if res is None:
+ if not res:
raise NotmuchError(
message="Could not create the specified database")
self._db = res
@@ -188,7 +188,7 @@ class Database(object):
"""
res = Database._open(_str(path), mode)
- if res is None:
+ if not res:
raise NotmuchError(message="Could not open the specified database")
self._db = res
@@ -651,7 +651,7 @@ class Query(object):
self._db = db
# create query, return None if too little mem available
query_p = Query._create(db.db_p, _str(querystr))
- if query_p is None:
+ if not query_p:
raise NullPointerError
self._query = query_p
@@ -685,7 +685,7 @@ class Query(object):
self._assert_query_is_initialized()
threads_p = Query._search_threads(self._query)
- if threads_p is None:
+ if not threads_p:
raise NullPointerError
return Threads(threads_p, self)
@@ -699,7 +699,7 @@ class Query(object):
self._assert_query_is_initialized()
msgs_p = Query._search_messages(self._query)
- if msgs_p is None:
+ if not msgs_p:
raise NullPointerError
return Messages(msgs_p, self)
@@ -765,7 +765,7 @@ class Directory(object):
def _assert_dir_is_initialized(self):
"""Raises a NotmuchError(:attr:`STATUS`.NOT_INITIALIZED)
if dir_p is None"""
- if self._dir_p is None:
+ if not self._dir_p:
raise NotmuchError(STATUS.NOT_INITIALIZED)
def __init__(self, path, dir_p, parent):
@@ -926,7 +926,7 @@ class Filenames(object):
_move_to_next.restype = None
def __next__(self):
- if self._files_p is None:
+ if not self._files_p:
raise NotmuchError(STATUS.NOT_INITIALIZED)
if not self._valid(self._files_p):
@@ -953,7 +953,7 @@ class Filenames(object):
# NotmuchError(:attr:`STATUS`.NOT_INITIALIZED)
for file in files: print file
"""
- if self._files_p is None:
+ if not self._files_p:
raise NotmuchError(STATUS.NOT_INITIALIZED)
i = 0
diff --git a/bindings/python/notmuch/filename.py b/bindings/python/notmuch/filename.py
index 51dae202..3f541046 100644
--- a/bindings/python/notmuch/filename.py
+++ b/bindings/python/notmuch/filename.py
@@ -69,7 +69,7 @@ class Filenames(Python3StringMixIn):
reference to it, so we can automatically delete the db object
once all derived objects are dead.
"""
- if files_p is None:
+ if not files_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._files = files_p
diff --git a/bindings/python/notmuch/message.py b/bindings/python/notmuch/message.py
index d40a575d..883ed233 100644
--- a/bindings/python/notmuch/message.py
+++ b/bindings/python/notmuch/message.py
@@ -117,7 +117,7 @@ class Messages(object):
:TODO: Make the iterator work more than once and cache the tags in
the Python object.(?)
"""
- if msgs_p is None:
+ if not msgs_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._msgs = msgs_p
@@ -349,7 +349,7 @@ class Message(Python3StringMixIn):
automatically delete the parent object once all derived
objects are dead.
"""
- if msg_p is None:
+ if not msg_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._msg = msg_p
#keep reference to parent, so we keep it alive
@@ -407,7 +407,7 @@ class Message(Python3StringMixIn):
msgs_p = Message._get_replies(self._msg)
- if msgs_p is None:
+ if not msgs_p:
return EmptyMessagesResult(self)
return Messages(msgs_p, self)
diff --git a/bindings/python/notmuch/tag.py b/bindings/python/notmuch/tag.py
index ceb72441..71d81dd6 100644
--- a/bindings/python/notmuch/tag.py
+++ b/bindings/python/notmuch/tag.py
@@ -70,7 +70,7 @@ class Tags(Python3StringMixIn):
:TODO: Make the iterator optionally work more than once by
cache the tags in the Python object(?)
"""
- if tags_p is None:
+ if not tags_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._tags = tags_p
diff --git a/bindings/python/notmuch/thread.py b/bindings/python/notmuch/thread.py
index e81ff1bd..104710c4 100644
--- a/bindings/python/notmuch/thread.py
+++ b/bindings/python/notmuch/thread.py
@@ -97,7 +97,7 @@ class Threads(Python3StringMixIn):
:TODO: Make the iterator work more than once and cache the tags in
the Python object.(?)
"""
- if threads_p is None:
+ if not threads_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._threads = threads_p
@@ -228,7 +228,7 @@ class Thread(object):
automatically delete the parent object once all derived
objects are dead.
"""
- if thread_p is None:
+ if not thread_p:
raise NotmuchError(STATUS.NULL_POINTER)
self._thread = thread_p
#keep reference to parent, so we keep it alive
@@ -289,7 +289,7 @@ class Thread(object):
msgs_p = Thread._get_toplevel_messages(self._thread)
- if msgs_p is None:
+ if not msgs_p:
raise NotmuchError(STATUS.NULL_POINTER)
return Messages(msgs_p, self)