Re: Python bindings and Xapian exceptions

Subject: Re: Python bindings and Xapian exceptions

Date: Tue, 15 Jun 2010 10:17:25 +0100

To: Sebastian Spaeth, notmuch

Cc:

From: David Edmondson


On Tue, 15 Jun 2010 11:03:55 +0200, "Sebastian Spaeth" <Sebastian@SSpaeth.de> wrote:
> >   A Xapian exception occurred finding message: The revision being read
> >   has been discarded - you should call Xapian::Database::reopen() and
> >   retry the operation.
> > It makes the Python bindings almost useless to me.
> 
> Not sure, if the python bindings should simply drop and reopen a
> database connection in that case? But I am not sure if libnotmuch.so
> still simply exits on such an error case.
> 
> The proper fix, and a reason why I am not immediately hacking around in
> the python bindings is that notmuch the library would actually return a
> proper error value rather than print to stderr and quit.
> 
> Happy to receive suggestions on how to handle this best from the python
> side of things.

Unfortunately I'm an ignorant about the best solution.

Having the Python layer hide the fact that the database was re-opened
seems as though it might be dangerous (in case I mix state from before
and after the re-opening), but I can't give a concrete example of
something that would fail.

Given that exception based programming is common in Python, simple
raising the exception and allowing the application to handle it appears
to make sense.

dme.
-- 
David Edmondson, http://dme.org
part-000.sig (application/pgp-signature)

Thread: