Issue #4426: The UTF-7 decoder was too strict and didn't accept some legal sequences.
[python.git] / Doc / library / mhlib.rst
blob2aab1dc083b7a18eb66d7420d31d237ff41dc16c
1 :mod:`mhlib` --- Access to MH mailboxes
2 =======================================
4 .. module:: mhlib
5    :synopsis: Manipulate MH mailboxes from Python.
6    :deprecated:
8 .. deprecated:: 2.6
9     The :mod:`mhlib` module has been removed in Python 3.0. Use the
10     :mod:`mailbox` instead.
12 .. sectionauthor:: Skip Montanaro <skip@pobox.com>
14 The :mod:`mhlib` module provides a Python interface to MH folders and their
15 contents.
17 The module contains three basic classes, :class:`MH`, which represents a
18 particular collection of folders, :class:`Folder`, which represents a single
19 folder, and :class:`Message`, which represents a single message.
22 .. class:: MH([path[, profile]])
24    :class:`MH` represents a collection of MH folders.
27 .. class:: Folder(mh, name)
29    The :class:`Folder` class represents a single folder and its messages.
32 .. class:: Message(folder, number[, name])
34    :class:`Message` objects represent individual messages in a folder.  The Message
35    class is derived from :class:`mimetools.Message`.
38 .. _mh-objects:
40 MH Objects
41 ----------
43 :class:`MH` instances have the following methods:
46 .. method:: MH.error(format[, ...])
48    Print an error message -- can be overridden.
51 .. method:: MH.getprofile(key)
53    Return a profile entry (``None`` if not set).
56 .. method:: MH.getpath()
58    Return the mailbox pathname.
61 .. method:: MH.getcontext()
63    Return the current folder name.
66 .. method:: MH.setcontext(name)
68    Set the current folder name.
71 .. method:: MH.listfolders()
73    Return a list of top-level folders.
76 .. method:: MH.listallfolders()
78    Return a list of all folders.
81 .. method:: MH.listsubfolders(name)
83    Return a list of direct subfolders of the given folder.
86 .. method:: MH.listallsubfolders(name)
88    Return a list of all subfolders of the given folder.
91 .. method:: MH.makefolder(name)
93    Create a new folder.
96 .. method:: MH.deletefolder(name)
98    Delete a folder -- must have no subfolders.
101 .. method:: MH.openfolder(name)
103    Return a new open folder object.
106 .. _mh-folder-objects:
108 Folder Objects
109 --------------
111 :class:`Folder` instances represent open folders and have the following methods:
114 .. method:: Folder.error(format[, ...])
116    Print an error message -- can be overridden.
119 .. method:: Folder.getfullname()
121    Return the folder's full pathname.
124 .. method:: Folder.getsequencesfilename()
126    Return the full pathname of the folder's sequences file.
129 .. method:: Folder.getmessagefilename(n)
131    Return the full pathname of message *n* of the folder.
134 .. method:: Folder.listmessages()
136    Return a list of messages in the folder (as numbers).
139 .. method:: Folder.getcurrent()
141    Return the current message number.
144 .. method:: Folder.setcurrent(n)
146    Set the current message number to *n*.
149 .. method:: Folder.parsesequence(seq)
151    Parse msgs syntax into list of messages.
154 .. method:: Folder.getlast()
156    Get last message, or ``0`` if no messages are in the folder.
159 .. method:: Folder.setlast(n)
161    Set last message (internal use only).
164 .. method:: Folder.getsequences()
166    Return dictionary of sequences in folder.  The sequence names are used  as keys,
167    and the values are the lists of message numbers in the sequences.
170 .. method:: Folder.putsequences(dict)
172    Return dictionary of sequences in folder name: list.
175 .. method:: Folder.removemessages(list)
177    Remove messages in list from folder.
180 .. method:: Folder.refilemessages(list, tofolder)
182    Move messages in list to other folder.
185 .. method:: Folder.movemessage(n, tofolder, ton)
187    Move one message to a given destination in another folder.
190 .. method:: Folder.copymessage(n, tofolder, ton)
192    Copy one message to a given destination in another folder.
195 .. _mh-message-objects:
197 Message Objects
198 ---------------
200 The :class:`Message` class adds one method to those of
201 :class:`mimetools.Message`:
204 .. method:: Message.openmessage(n)
206    Return a new open message object (costs a file descriptor).