|  | 
 | :mod:`mhlib` --- Access to MH mailboxes | 
 | ======================================= | 
 |  | 
 | .. module:: mhlib | 
 |    :synopsis: Manipulate MH mailboxes from Python. | 
 |  | 
 |  | 
 | .. % LaTeX'ized from the comments in the module by Skip Montanaro | 
 | .. % <skip@mojam.com>. | 
 |  | 
 | The :mod:`mhlib` module provides a Python interface to MH folders and their | 
 | contents. | 
 |  | 
 | The module contains three basic classes, :class:`MH`, which represents a | 
 | particular collection of folders, :class:`Folder`, which represents a single | 
 | folder, and :class:`Message`, which represents a single message. | 
 |  | 
 |  | 
 | .. class:: MH([path[, profile]]) | 
 |  | 
 |    :class:`MH` represents a collection of MH folders. | 
 |  | 
 |  | 
 | .. class:: Folder(mh, name) | 
 |  | 
 |    The :class:`Folder` class represents a single folder and its messages. | 
 |  | 
 |  | 
 | .. class:: Message(folder, number[, name]) | 
 |  | 
 |    :class:`Message` objects represent individual messages in a folder.  The Message | 
 |    class is derived from :class:`mimetools.Message`. | 
 |  | 
 |  | 
 | .. _mh-objects: | 
 |  | 
 | MH Objects | 
 | ---------- | 
 |  | 
 | :class:`MH` instances have the following methods: | 
 |  | 
 |  | 
 | .. method:: MH.error(format[, ...]) | 
 |  | 
 |    Print an error message -- can be overridden. | 
 |  | 
 |  | 
 | .. method:: MH.getprofile(key) | 
 |  | 
 |    Return a profile entry (``None`` if not set). | 
 |  | 
 |  | 
 | .. method:: MH.getpath() | 
 |  | 
 |    Return the mailbox pathname. | 
 |  | 
 |  | 
 | .. method:: MH.getcontext() | 
 |  | 
 |    Return the current folder name. | 
 |  | 
 |  | 
 | .. method:: MH.setcontext(name) | 
 |  | 
 |    Set the current folder name. | 
 |  | 
 |  | 
 | .. method:: MH.listfolders() | 
 |  | 
 |    Return a list of top-level folders. | 
 |  | 
 |  | 
 | .. method:: MH.listallfolders() | 
 |  | 
 |    Return a list of all folders. | 
 |  | 
 |  | 
 | .. method:: MH.listsubfolders(name) | 
 |  | 
 |    Return a list of direct subfolders of the given folder. | 
 |  | 
 |  | 
 | .. method:: MH.listallsubfolders(name) | 
 |  | 
 |    Return a list of all subfolders of the given folder. | 
 |  | 
 |  | 
 | .. method:: MH.makefolder(name) | 
 |  | 
 |    Create a new folder. | 
 |  | 
 |  | 
 | .. method:: MH.deletefolder(name) | 
 |  | 
 |    Delete a folder -- must have no subfolders. | 
 |  | 
 |  | 
 | .. method:: MH.openfolder(name) | 
 |  | 
 |    Return a new open folder object. | 
 |  | 
 |  | 
 | .. _mh-folder-objects: | 
 |  | 
 | Folder Objects | 
 | -------------- | 
 |  | 
 | :class:`Folder` instances represent open folders and have the following methods: | 
 |  | 
 |  | 
 | .. method:: Folder.error(format[, ...]) | 
 |  | 
 |    Print an error message -- can be overridden. | 
 |  | 
 |  | 
 | .. method:: Folder.getfullname() | 
 |  | 
 |    Return the folder's full pathname. | 
 |  | 
 |  | 
 | .. method:: Folder.getsequencesfilename() | 
 |  | 
 |    Return the full pathname of the folder's sequences file. | 
 |  | 
 |  | 
 | .. method:: Folder.getmessagefilename(n) | 
 |  | 
 |    Return the full pathname of message *n* of the folder. | 
 |  | 
 |  | 
 | .. method:: Folder.listmessages() | 
 |  | 
 |    Return a list of messages in the folder (as numbers). | 
 |  | 
 |  | 
 | .. method:: Folder.getcurrent() | 
 |  | 
 |    Return the current message number. | 
 |  | 
 |  | 
 | .. method:: Folder.setcurrent(n) | 
 |  | 
 |    Set the current message number to *n*. | 
 |  | 
 |  | 
 | .. method:: Folder.parsesequence(seq) | 
 |  | 
 |    Parse msgs syntax into list of messages. | 
 |  | 
 |  | 
 | .. method:: Folder.getlast() | 
 |  | 
 |    Get last message, or ``0`` if no messages are in the folder. | 
 |  | 
 |  | 
 | .. method:: Folder.setlast(n) | 
 |  | 
 |    Set last message (internal use only). | 
 |  | 
 |  | 
 | .. method:: Folder.getsequences() | 
 |  | 
 |    Return dictionary of sequences in folder.  The sequence names are used  as keys, | 
 |    and the values are the lists of message numbers in the sequences. | 
 |  | 
 |  | 
 | .. method:: Folder.putsequences(dict) | 
 |  | 
 |    Return dictionary of sequences in folder name: list. | 
 |  | 
 |  | 
 | .. method:: Folder.removemessages(list) | 
 |  | 
 |    Remove messages in list from folder. | 
 |  | 
 |  | 
 | .. method:: Folder.refilemessages(list, tofolder) | 
 |  | 
 |    Move messages in list to other folder. | 
 |  | 
 |  | 
 | .. method:: Folder.movemessage(n, tofolder, ton) | 
 |  | 
 |    Move one message to a given destination in another folder. | 
 |  | 
 |  | 
 | .. method:: Folder.copymessage(n, tofolder, ton) | 
 |  | 
 |    Copy one message to a given destination in another folder. | 
 |  | 
 |  | 
 | .. _mh-message-objects: | 
 |  | 
 | Message Objects | 
 | --------------- | 
 |  | 
 | The :class:`Message` class adds one method to those of | 
 | :class:`mimetools.Message`: | 
 |  | 
 |  | 
 | .. method:: Message.openmessage(n) | 
 |  | 
 |    Return a new open message object (costs a file descriptor). | 
 |  |