blob: 0dd53536327790263ee5e7a5000b1c1d34b8ee98 [file] [log] [blame]
Georg Brandl8ec7f652007-08-15 14:28:01 +00001
2:mod:`mhlib` --- Access to MH mailboxes
3=======================================
4
5.. module:: mhlib
6 :synopsis: Manipulate MH mailboxes from Python.
7
8
9.. % LaTeX'ized from the comments in the module by Skip Montanaro
Skip Montanaro54662462007-12-08 15:26:16 +000010.. % <skip@pobox.com>.
Georg Brandl8ec7f652007-08-15 14:28:01 +000011
12The :mod:`mhlib` module provides a Python interface to MH folders and their
13contents.
14
15The module contains three basic classes, :class:`MH`, which represents a
16particular collection of folders, :class:`Folder`, which represents a single
17folder, and :class:`Message`, which represents a single message.
18
19
20.. class:: MH([path[, profile]])
21
22 :class:`MH` represents a collection of MH folders.
23
24
25.. class:: Folder(mh, name)
26
27 The :class:`Folder` class represents a single folder and its messages.
28
29
30.. class:: Message(folder, number[, name])
31
32 :class:`Message` objects represent individual messages in a folder. The Message
33 class is derived from :class:`mimetools.Message`.
34
35
36.. _mh-objects:
37
38MH Objects
39----------
40
41:class:`MH` instances have the following methods:
42
43
44.. method:: MH.error(format[, ...])
45
46 Print an error message -- can be overridden.
47
48
49.. method:: MH.getprofile(key)
50
51 Return a profile entry (``None`` if not set).
52
53
54.. method:: MH.getpath()
55
56 Return the mailbox pathname.
57
58
59.. method:: MH.getcontext()
60
61 Return the current folder name.
62
63
64.. method:: MH.setcontext(name)
65
66 Set the current folder name.
67
68
69.. method:: MH.listfolders()
70
71 Return a list of top-level folders.
72
73
74.. method:: MH.listallfolders()
75
76 Return a list of all folders.
77
78
79.. method:: MH.listsubfolders(name)
80
81 Return a list of direct subfolders of the given folder.
82
83
84.. method:: MH.listallsubfolders(name)
85
86 Return a list of all subfolders of the given folder.
87
88
89.. method:: MH.makefolder(name)
90
91 Create a new folder.
92
93
94.. method:: MH.deletefolder(name)
95
96 Delete a folder -- must have no subfolders.
97
98
99.. method:: MH.openfolder(name)
100
101 Return a new open folder object.
102
103
104.. _mh-folder-objects:
105
106Folder Objects
107--------------
108
109:class:`Folder` instances represent open folders and have the following methods:
110
111
112.. method:: Folder.error(format[, ...])
113
114 Print an error message -- can be overridden.
115
116
117.. method:: Folder.getfullname()
118
119 Return the folder's full pathname.
120
121
122.. method:: Folder.getsequencesfilename()
123
124 Return the full pathname of the folder's sequences file.
125
126
127.. method:: Folder.getmessagefilename(n)
128
129 Return the full pathname of message *n* of the folder.
130
131
132.. method:: Folder.listmessages()
133
134 Return a list of messages in the folder (as numbers).
135
136
137.. method:: Folder.getcurrent()
138
139 Return the current message number.
140
141
142.. method:: Folder.setcurrent(n)
143
144 Set the current message number to *n*.
145
146
147.. method:: Folder.parsesequence(seq)
148
149 Parse msgs syntax into list of messages.
150
151
152.. method:: Folder.getlast()
153
154 Get last message, or ``0`` if no messages are in the folder.
155
156
157.. method:: Folder.setlast(n)
158
159 Set last message (internal use only).
160
161
162.. method:: Folder.getsequences()
163
164 Return dictionary of sequences in folder. The sequence names are used as keys,
165 and the values are the lists of message numbers in the sequences.
166
167
168.. method:: Folder.putsequences(dict)
169
170 Return dictionary of sequences in folder name: list.
171
172
173.. method:: Folder.removemessages(list)
174
175 Remove messages in list from folder.
176
177
178.. method:: Folder.refilemessages(list, tofolder)
179
180 Move messages in list to other folder.
181
182
183.. method:: Folder.movemessage(n, tofolder, ton)
184
185 Move one message to a given destination in another folder.
186
187
188.. method:: Folder.copymessage(n, tofolder, ton)
189
190 Copy one message to a given destination in another folder.
191
192
193.. _mh-message-objects:
194
195Message Objects
196---------------
197
198The :class:`Message` class adds one method to those of
199:class:`mimetools.Message`:
200
201
202.. method:: Message.openmessage(n)
203
204 Return a new open message object (costs a file descriptor).
205