notmuch/bindings/python/docs/source/index.rst
Justus Winter ba95980cf1 python: refactor the python bindings
Move the Directory class into its own file, merge the two Filenames
classes into one, deprecate Filenames.as_iterator, update the
documentation accordingly.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2012-02-22 22:06:45 +01:00

288 lines
6.2 KiB
ReStructuredText

.. notmuch documentation master file, created by
sphinx-quickstart on Tue Feb 2 10:00:47 2010.
.. currentmodule:: notmuch
Welcome to :mod:`notmuch`'s documentation
===========================================
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`.
.. moduleauthor:: Sebastian Spaeth <Sebastian@SSpaeth.de>
:License: This module is covered under the GNU GPL v3 (or later).
This page contains the main API overview of notmuch |release|.
Notmuch can be imported as::
import notmuch
or::
from notmuch import Query, Database
db = Database('path',create=True)
msgs = Query(db,'from:myself').search_messages()
for msg in msgs:
print (msg)
More information on specific topics can be found on the following pages:
.. toctree::
:maxdepth: 1
status_and_errors
notmuch
:mod:`notmuch` -- The Notmuch interface
=================================================
.. automodule:: notmuch
:class:`notmuch.Database` -- The underlying notmuch database
---------------------------------------------------------------------
.. autoclass:: notmuch.Database([path=None[, create=False[, mode=MODE.READ_ONLY]]])
.. automethod:: create
.. automethod:: open(path, status=MODE.READ_ONLY)
.. automethod:: get_path
.. automethod:: get_version
.. automethod:: needs_upgrade
.. automethod:: upgrade
.. automethod:: begin_atomic
.. automethod:: end_atomic
.. automethod:: get_directory
.. automethod:: add_message
.. automethod:: remove_message
.. automethod:: find_message
.. automethod:: find_message_by_filename
.. automethod:: get_all_tags
.. automethod:: create_query
.. attribute:: Database.MODE
Defines constants that are used as the mode in which to open a database.
MODE.READ_ONLY
Open the database in read-only mode
MODE.READ_WRITE
Open the database in read-write mode
.. autoattribute:: db_p
:class:`notmuch.Query` -- A search query
-------------------------------------------------
.. autoclass:: notmuch.Query
.. 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
Sort by email message ID.
SORT.UNSORTED
Do not apply a special sort order (returns results in document id
order).
.. automethod:: set_sort
.. 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`.
.. automethod:: search_threads
.. automethod:: search_messages
.. automethod:: count_messages
.. automethod:: count_threads
:class:`Messages` -- A bunch of messages
----------------------------------------
.. autoclass:: Messages
.. automethod:: collect_tags
.. method:: __len__()
.. warning::
: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))`.
:class:`Message` -- A single message
----------------------------------------
.. autoclass:: Message
.. automethod:: get_message_id
.. automethod:: get_thread_id
.. automethod:: get_replies
.. automethod:: get_filename
.. automethod:: get_filenames
.. attribute:: FLAG
FLAG.MATCH
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.
.. automethod:: get_flag
.. automethod:: set_flag
.. automethod:: get_date
.. automethod:: get_header
.. automethod:: get_tags
.. automethod:: maildir_flags_to_tags
.. automethod:: tags_to_maildir_flags
.. automethod:: remove_tag
.. automethod:: add_tag
.. automethod:: remove_all_tags
.. automethod:: freeze
.. automethod:: thaw
.. automethod:: format_message_as_json
.. automethod:: format_message_as_text
.. automethod:: __str__
:class:`Tags` -- Notmuch tags
-----------------------------
.. autoclass:: Tags
:members:
.. method:: __len__
.. 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.
.. automethod:: __str__
:class:`notmuch.Threads` -- Threads iterator
-----------------------------------------------------
.. autoclass:: notmuch.Threads
.. automethod:: __len__
.. automethod:: __str__
:class:`Thread` -- A single thread
------------------------------------
.. 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__
:class:`Filenames` -- An iterator over filenames
------------------------------------------------
.. autoclass:: notmuch.Filenames
.. automethod:: notmuch.Filenames.__len__
.. automethod:: notmuch.Filenames.as_generator
:class:`notmuch.database.Directoy` -- A directory entry in the database
------------------------------------------------------------------------
.. autoclass:: notmuch.Directory
.. automethod:: notmuch.Directory.get_child_files
.. automethod:: notmuch.Directory.get_child_directories
.. automethod:: notmuch.Directory.get_mtime
.. automethod:: notmuch.Directory.set_mtime
.. autoattribute:: notmuch.Directory.mtime
.. autoattribute:: notmuch.Directory.path
The `next page <status_and_errors.html>`_ contains information on possible Status and Error values.
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`