2010-04-19 21:25:05 +02:00
.. notmuch documentation master file, created by
2010-03-16 20:36:04 +01:00
sphinx-quickstart on Tue Feb 2 10:00:47 2010.
2010-04-19 21:25:05 +02:00
.. currentmodule :: notmuch
2010-03-16 20:36:04 +01:00
2010-04-19 21:25:05 +02:00
Welcome to :mod: `notmuch` 's documentation
2010-03-17 12:32:22 +01:00
===========================================
2010-03-16 20:36:04 +01:00
2010-04-19 21:25:05 +02:00
The :mod: `notmuch` module provides an interface to the `notmuch <http://notmuchmail.org> `_ functionality, directly interfacing to a shared notmuch library.
Within :mod: `notmuch` , the classes :class: `Database` , :class: `Query` provide most of the core functionality, returning :class: `Threads` , :class: `Messages` and :class: `Tags` .
2010-03-16 20:36:04 +01:00
.. moduleauthor :: Sebastian Spaeth <Sebastian@SSpaeth.de>
2010-03-16 20:54:43 +01:00
:License: This module is covered under the GNU GPL v3 (or later).
2010-03-16 20:36:04 +01:00
2012-02-18 01:41:23 +01:00
This page contains the main API overview of notmuch |release|.
2010-03-16 20:54:43 +01:00
2010-03-17 12:32:22 +01:00
Notmuch can be imported as::
2010-03-16 20:54:43 +01:00
2010-04-19 21:25:05 +02:00
import notmuch
2010-03-16 20:54:43 +01:00
2010-03-17 12:32:22 +01:00
or::
2010-03-16 20:54:43 +01:00
2011-10-05 17:54:09 +02:00
from notmuch import Query, Database
db = Database('path',create=True)
msgs = Query(db,'from:myself').search_messages()
for msg in msgs:
print (msg)
2010-03-16 20:36:04 +01:00
2010-03-24 11:05:54 +01:00
More information on specific topics can be found on the following pages:
2010-03-16 20:36:04 +01:00
.. toctree ::
:maxdepth: 1
2011-06-16 15:41:48 +02:00
status_and_errors
2012-02-18 01:41:23 +01:00
notmuch
2010-03-16 20:36:04 +01:00
2010-04-19 21:25:05 +02:00
:mod: `notmuch` -- The Notmuch interface
2010-03-25 14:28:56 +01:00
=================================================
2010-03-16 20:36:04 +01:00
2010-04-19 21:25:05 +02:00
.. automodule :: notmuch
2010-03-17 12:32:22 +01:00
2010-04-19 21:25:05 +02:00
:class: `notmuch.Database` -- The underlying notmuch database
2010-03-25 14:28:56 +01:00
---------------------------------------------------------------------
2010-03-16 20:54:43 +01:00
2010-04-19 21:25:05 +02:00
.. autoclass :: notmuch.Database([path=None[, create=False[, mode=MODE.READ_ONLY]]])
2010-03-17 11:45:13 +01:00
.. automethod :: create
.. automethod :: open(path, status=MODE.READ_ONLY)
.. automethod :: get_path
2010-03-18 08:50:48 +01:00
.. automethod :: get_version
.. automethod :: needs_upgrade
.. automethod :: upgrade
2011-09-29 11:00:43 +02:00
.. automethod :: begin_atomic
.. automethod :: end_atomic
2010-03-18 08:50:48 +01:00
.. automethod :: get_directory
.. automethod :: add_message
.. automethod :: remove_message
2010-03-17 11:45:13 +01:00
.. automethod :: find_message
2011-09-29 11:00:43 +02:00
.. automethod :: find_message_by_filename
2010-03-17 11:45:13 +01:00
.. automethod :: get_all_tags
2010-03-19 10:55:06 +01:00
.. automethod :: create_query
2010-03-17 11:45:13 +01:00
.. attribute :: Database.MODE
Defines constants that are used as the mode in which to open a database.
2010-03-17 12:32:22 +01:00
MODE.READ_ONLY
2010-03-17 11:45:13 +01:00
Open the database in read-only mode
2010-03-17 12:32:22 +01:00
MODE.READ_WRITE
2010-03-17 11:45:13 +01:00
Open the database in read-write mode
.. autoattribute :: db_p
2010-03-16 20:36:04 +01:00
2011-10-05 17:54:09 +02:00
2010-04-19 21:25:05 +02:00
:class: `notmuch.Query` -- A search query
2010-03-25 14:28:56 +01:00
-------------------------------------------------
2010-03-16 20:36:04 +01:00
2010-04-19 21:25:05 +02:00
.. autoclass :: notmuch.Query
2010-03-17 15:14:44 +01:00
.. automethod :: create
.. attribute :: Query.SORT
Defines constants that are used as the mode in which to open a database.
SORT.OLDEST_FIRST
Sort by message date, oldest first.
SORT.NEWEST_FIRST
Sort by message date, newest first.
SORT.MESSAGE_ID
2010-04-23 13:37:08 +02:00
Sort by email message ID.
SORT.UNSORTED
2012-02-18 01:41:23 +01:00
Do not apply a special sort order (returns results in document id
order).
2010-03-17 15:14:44 +01:00
.. automethod :: set_sort
2010-03-24 11:05:54 +01:00
.. attribute :: sort
Instance attribute :attr: `sort` contains the sort order (see
:attr: `Query.SORT` ) if explicitely specified via
:meth: `set_sort` . By default it is set to `None` .
2010-03-18 09:02:59 +01:00
.. automethod :: search_threads
2010-03-17 15:14:44 +01:00
.. automethod :: search_messages
2010-03-16 20:36:04 +01:00
2010-03-18 09:02:59 +01:00
.. automethod :: count_messages
2012-02-18 01:32:21 +01:00
.. automethod :: count_threads
2010-03-24 17:18:33 +01:00
2010-03-16 20:54:43 +01:00
:class: `Messages` -- A bunch of messages
----------------------------------------
.. autoclass :: Messages
2010-03-17 15:14:44 +01:00
.. automethod :: collect_tags
2011-06-15 14:25:33 +02:00
.. method :: __len__()
2011-12-05 22:12:35 +01:00
.. warning ::
2012-02-18 01:41:23 +01:00
2011-12-05 22:12:35 +01:00
:meth: `__len__` was removed in version 0.6 as it exhausted the iterator and broke
list(Messages()). Use the :meth: `Query.count_messages` function or use `len(list(msgs))` .
2010-03-16 20:54:43 +01:00
:class: `Message` -- A single message
----------------------------------------
.. autoclass :: Message
2010-03-17 17:09:58 +01:00
.. automethod :: get_message_id
2010-03-18 09:02:59 +01:00
.. automethod :: get_thread_id
2010-03-17 17:09:58 +01:00
2010-03-18 09:02:59 +01:00
.. automethod :: get_replies
2010-03-17 17:09:58 +01:00
.. automethod :: get_filename
2011-06-02 09:20:56 +02:00
.. automethod :: get_filenames
2010-03-25 08:39:21 +01:00
.. attribute :: FLAG
2012-02-18 01:41:23 +01:00
FLAG.MATCH
2010-03-25 08:39:21 +01:00
This flag is automatically set by a
Query.search_threads on those messages that match the
query. This allows us to distinguish matches from the rest
of the messages in that thread.
2011-06-16 15:41:48 +02:00
.. automethod :: get_flag
2010-03-18 09:02:59 +01:00
.. automethod :: set_flag
2012-02-18 01:41:23 +01:00
2010-03-18 09:02:59 +01:00
.. automethod :: get_date
.. automethod :: get_header
2010-03-17 17:09:58 +01:00
.. automethod :: get_tags
2011-06-16 15:41:48 +02:00
.. automethod :: maildir_flags_to_tags
.. automethod :: tags_to_maildir_flags
2010-03-17 17:09:58 +01:00
.. automethod :: remove_tag
.. automethod :: add_tag
2010-03-18 09:02:59 +01:00
.. automethod :: remove_all_tags
.. automethod :: freeze
.. automethod :: thaw
2011-06-16 15:41:48 +02:00
.. automethod :: format_message_as_json
.. automethod :: format_message_as_text
2010-03-17 17:09:58 +01:00
.. automethod :: __str__
2010-03-16 20:54:43 +01:00
2010-03-24 17:18:33 +01:00
2010-03-17 15:14:44 +01:00
:class: `Tags` -- Notmuch tags
-----------------------------
2010-03-16 20:36:04 +01:00
2010-03-16 20:54:43 +01:00
.. autoclass :: Tags
2010-03-16 20:36:04 +01:00
:members:
2011-09-29 10:47:28 +02:00
.. method :: __len__
2011-12-05 22:12:35 +01:00
.. warning ::
:meth: `__len__` was removed in version 0.6 as it exhausted the iterator and broke
list(Tags()). Use :meth: `len(list(msgs))` instead if you need to know the number of
tags.
2010-03-16 20:36:04 +01:00
2010-03-17 15:14:44 +01:00
.. automethod :: __str__
2010-03-16 20:36:04 +01:00
2010-03-24 11:05:54 +01:00
2010-04-19 21:25:05 +02:00
:class: `notmuch.Threads` -- Threads iterator
2010-03-25 14:28:56 +01:00
-----------------------------------------------------
2010-03-18 09:02:59 +01:00
2010-04-19 21:25:05 +02:00
.. autoclass :: notmuch.Threads
2010-03-24 11:05:54 +01:00
.. automethod :: __len__
.. automethod :: __str__
2010-03-18 09:02:59 +01:00
:class: `Thread` -- A single thread
------------------------------------
2010-03-24 11:05:54 +01:00
.. autoclass :: Thread
.. automethod :: get_thread_id
.. automethod :: get_total_messages
.. automethod :: get_toplevel_messages
.. automethod :: get_matched_messages
.. automethod :: get_authors
.. automethod :: get_subject
.. automethod :: get_oldest_date
.. automethod :: get_newest_date
.. automethod :: get_tags
.. automethod :: __str__
2010-03-18 09:02:59 +01:00
2010-03-24 17:18:33 +01:00
2010-03-18 09:02:59 +01:00
:class: `Filenames` -- An iterator over filenames
------------------------------------------------
2012-02-22 21:55:59 +01:00
.. autoclass :: notmuch.Filenames
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. automethod :: notmuch.Filenames.__len__
.. automethod :: notmuch.Filenames.as_generator
2010-03-25 14:28:56 +01:00
2010-04-19 21:25:05 +02:00
:class: `notmuch.database.Directoy` -- A directory entry in the database
2010-03-25 14:28:56 +01:00
------------------------------------------------------------------------
2010-03-18 09:02:59 +01:00
2012-02-22 21:55:59 +01:00
.. autoclass :: notmuch.Directory
2010-03-18 09:02:59 +01:00
2012-02-22 21:55:59 +01:00
.. automethod :: notmuch.Directory.get_child_files
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. automethod :: notmuch.Directory.get_child_directories
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. automethod :: notmuch.Directory.get_mtime
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. automethod :: notmuch.Directory.set_mtime
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. autoattribute :: notmuch.Directory.mtime
2010-03-25 14:28:56 +01:00
2012-02-22 21:55:59 +01:00
.. autoattribute :: notmuch.Directory.path
2010-03-18 09:02:59 +01:00
2010-03-25 14:28:56 +01:00
2011-06-16 15:41:48 +02:00
The `next page <status_and_errors.html> `_ contains information on possible Status and Error values.
2010-03-17 11:45:13 +01:00
2010-03-16 20:36:04 +01:00
Indices and tables
==================
* :ref: `genindex`
* :ref: `search`