| \section{\module{mhlib} --- | 
 |          Access to MH mailboxes} | 
 |  | 
 | % LaTeX'ized from the comments in the module by Skip Montanaro | 
 | % <skip@mojam.com>. | 
 |  | 
 | \declaremodule{standard}{mhlib} | 
 | \modulesynopsis{Manipulate MH mailboxes from Python.} | 
 |  | 
 |  | 
 | The \module{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. | 
 |  | 
 |  | 
 | \begin{classdesc}{MH}{\optional{path\optional{, profile}}} | 
 | \class{MH} represents a collection of MH folders. | 
 | \end{classdesc} | 
 |  | 
 | \begin{classdesc}{Folder}{mh, name} | 
 | The \class{Folder} class represents a single folder and its messages. | 
 | \end{classdesc} | 
 |  | 
 | \begin{classdesc}{Message}{folder, number\optional{, name}} | 
 | \class{Message} objects represent individual messages in a folder.  The | 
 | Message class is derived from \class{mimetools.Message}. | 
 | \end{classdesc} | 
 |  | 
 |  | 
 | \subsection{MH Objects \label{mh-objects}} | 
 |  | 
 | \class{MH} instances have the following methods: | 
 |  | 
 |  | 
 | \begin{methoddesc}[MH]{error}{format\optional{, ...}} | 
 | Print an error message -- can be overridden. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{getprofile}{key} | 
 | Return a profile entry (\code{None} if not set). | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{getpath}{} | 
 | Return the mailbox pathname. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{getcontext}{} | 
 | Return the current folder name. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{setcontext}{name} | 
 | Set the current folder name. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{listfolders}{} | 
 | Return a list of top-level folders. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{listallfolders}{} | 
 | Return a list of all folders. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{listsubfolders}{name} | 
 | Return a list of direct subfolders of the given folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{listallsubfolders}{name} | 
 | Return a list of all subfolders of the given folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{makefolder}{name} | 
 | Create a new folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{deletefolder}{name} | 
 | Delete a folder -- must have no subfolders. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[MH]{openfolder}{name} | 
 | Return a new open folder object. | 
 | \end{methoddesc} | 
 |  | 
 |  | 
 |  | 
 | \subsection{Folder Objects \label{mh-folder-objects}} | 
 |  | 
 | \class{Folder} instances represent open folders and have the following | 
 | methods: | 
 |  | 
 |  | 
 | \begin{methoddesc}[Folder]{error}{format\optional{, ...}} | 
 | Print an error message -- can be overridden. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{getfullname}{} | 
 | Return the folder's full pathname. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{getsequencesfilename}{} | 
 | Return the full pathname of the folder's sequences file. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{getmessagefilename}{n} | 
 | Return the full pathname of message \var{n} of the folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{listmessages}{} | 
 | Return a list of messages in the folder (as numbers). | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{getcurrent}{} | 
 | Return the current message number. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{setcurrent}{n} | 
 | Set the current message number to \var{n}. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{parsesequence}{seq} | 
 | Parse msgs syntax into list of messages. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{getlast}{} | 
 | Get last message, or \code{0} if no messages are in the folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{setlast}{n} | 
 | Set last message (internal use only). | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[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. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{putsequences}{dict} | 
 | Return dictionary of sequences in folder {name: list}. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{removemessages}{list} | 
 | Remove messages in list from folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{refilemessages}{list, tofolder} | 
 | Move messages in list to other folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{movemessage}{n, tofolder, ton} | 
 | Move one message to a given destination in another folder. | 
 | \end{methoddesc} | 
 |  | 
 | \begin{methoddesc}[Folder]{copymessage}{n, tofolder, ton} | 
 | Copy one message to a given destination in another folder. | 
 | \end{methoddesc} | 
 |  | 
 |  | 
 | \subsection{Message Objects \label{mh-message-objects}} | 
 |  | 
 | The \class{Message} class adds one method to those of | 
 | \class{mimetools.Message}: | 
 |  | 
 | \begin{methoddesc}[Message]{openmessage}{n} | 
 | Return a new open message object (costs a file descriptor). | 
 | \end{methoddesc} |