aboutsummaryrefslogtreecommitdiff
path: root/bindings/python/notmuch/__init__.py
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-04-21 17:23:49 -0700
committerCarl Worth <cworth@cworth.org>2010-04-21 17:29:34 -0700
commit3b558de7811a765c3295a58bd53e2156eca0e32e (patch)
tree3367ab027520d8049b92c16bb89aefec52d80805 /bindings/python/notmuch/__init__.py
parent634b4fbe233ee9007d190327df11779fe2113fb8 (diff)
Move everything down into a bindings/python directory.
In preparation for merging the python bindings into the notmuch repository.
Diffstat (limited to 'bindings/python/notmuch/__init__.py')
-rw-r--r--bindings/python/notmuch/__init__.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/bindings/python/notmuch/__init__.py b/bindings/python/notmuch/__init__.py
new file mode 100644
index 0000000..56a4f2a
--- /dev/null
+++ b/bindings/python/notmuch/__init__.py
@@ -0,0 +1,61 @@
+"""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:
+ `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.
+
+ Pretty much the same is valid for all other objects in the
+ hierarchy, such as :class:`Query`, :class:`Messages`,
+ :class:`Message`, and :class:`Tags`.
+
+"""
+
+"""
+This file is part of notmuch.
+
+Notmuch is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation, either version 3 of the License, or (at your
+option) any later version.
+
+Notmuch is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with notmuch. If not, see <http://www.gnu.org/licenses/>.
+
+Copyright 2010 Sebastian Spaeth <Sebastian@SSpaeth.de>'
+"""
+from database import Database, Query
+from message import Messages, Message
+from thread import Threads, Thread
+from tag import Tags
+from notmuch.globals import nmlib, STATUS, NotmuchError
+__LICENSE__="GPL v3+"
+__VERSION__='0.2.2'
+__AUTHOR__ ='Sebastian Spaeth <Sebastian@SSpaeth.de>'