2010-03-17 12:32:22 +01:00
|
|
|
"""The :mod:`notmuch` module provides most of the functionality that a user is likely to need.
|
|
|
|
|
|
|
|
.. note:: The underlying notmuch library is build on a hierarchical
|
|
|
|
memory allocator called talloc. All objects derive from a
|
|
|
|
top-level :class:`Database` object.
|
|
|
|
|
|
|
|
This means that as soon as an object is deleted, all underlying
|
|
|
|
derived objects such as Queries, Messages, Message, and Tags will
|
|
|
|
be freed by the underlying library as well. Accessing these
|
|
|
|
objects will then lead to segfaults and other unexpected behavior.
|
|
|
|
|
|
|
|
We implement reference counting, so that parent objects can be
|
|
|
|
automatically freed when they are not needed anymore. For
|
|
|
|
example::
|
|
|
|
|
|
|
|
db = Database('path',create=True)
|
|
|
|
msgs = Query(db,'from:myself').search_messages()
|
|
|
|
|
|
|
|
This returns a :class:`Messages` which internally contains a
|
|
|
|
reference to its parent :class:`Query` object. Otherwise the
|
|
|
|
Query() would be immediately freed, taking our *msgs* down with
|
|
|
|
it.
|
|
|
|
|
|
|
|
In this case, the above Query() object will be automatically freed
|
|
|
|
whenever we delete all derived objects, ie in our case:
|
2010-03-17 17:09:58 +01:00
|
|
|
`del(msgs)` would also delete the parent Query. It would not
|
|
|
|
delete the parent Database() though, as that is still referenced
|
|
|
|
from the variable *db* in which it is stored.
|
2010-03-17 12:32:22 +01:00
|
|
|
|
|
|
|
Pretty much the same is valid for all other objects in the
|
|
|
|
hierarchy, such as :class:`Query`, :class:`Messages`,
|
|
|
|
:class:`Message`, and :class:`Tags`.
|
|
|
|
|
|
|
|
"""
|
2010-03-24 11:07:22 +01:00
|
|
|
from database import Database, Query
|
2010-03-24 17:18:33 +01:00
|
|
|
from message import Messages
|
|
|
|
from thread import Threads
|
|
|
|
from tag import Tags
|
2010-03-24 11:07:22 +01:00
|
|
|
from cnotmuch.globals import nmlib, STATUS, NotmuchError
|
2010-03-17 12:32:22 +01:00
|
|
|
__LICENSE__="GPL v3+"
|
2010-03-24 12:28:17 +01:00
|
|
|
__VERSION__='0.2.0'
|
2010-03-22 12:32:44 +01:00
|
|
|
__AUTHOR__ ='Sebastian Spaeth <Sebastian@SSpaeth.de>'
|