blob: 3e706634bde3386e781c34386641f674d940a5dd [file] [log] [blame]
\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}