Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
:exc:`XapianError` as the underlying database has been
modified. Close and reopen the database to continue working with it.
:exc:`XapianError` as the underlying database has been
modified. Close and reopen the database to continue working with it.
+ :class:`Database` objects implement the context manager protocol
+ so you can use the :keyword:`with` statement to ensure that the
+ database is properly closed.
+
.. note::
Any function in this class can and will throw an
.. note::
Any function in this class can and will throw an
self._close(self._db)
self._db = None
self._close(self._db)
self._db = None
+ def __enter__(self):
+ '''
+ Implements the context manager protocol.
+ '''
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ '''
+ Implements the context manager protocol.
+ '''
+ self.close()
+
def get_path(self):
"""Returns the file path of an open database"""
self._assert_db_is_initialized()
def get_path(self):
"""Returns the file path of an open database"""
self._assert_db_is_initialized()