blob: 9180ac293eeded1454300ebc63bc9f62e2dae965 [file] [log] [blame]
Barry Warsaw5e634632001-09-26 05:23:47 +00001\declaremodule{standard}{email.Iterators}
2\modulesynopsis{Iterate over a message object tree.}
Barry Warsaw5e634632001-09-26 05:23:47 +00003
4Iterating over a message object tree is fairly easy with the
5\method{Message.walk()} method. The \module{email.Iterators} module
6provides some useful higher level iterations over message object
7trees.
8
9\begin{funcdesc}{body_line_iterator}{msg}
10This iterates over all the payloads in all the subparts of \var{msg},
11returning the string payloads line-by-line. It skips over all the
12subpart headers, and it skips over any subpart with a payload that
13isn't a Python string. This is somewhat equivalent to reading the
14flat text representation of the message from a file using
15\method{readline()}, skipping over all the intervening headers.
16\end{funcdesc}
17
18\begin{funcdesc}{typed_subpart_iterator}{msg\optional{,
19 maintype\optional{, subtype}}}
20This iterates over all the subparts of \var{msg}, returning only those
21subparts that match the MIME type specified by \var{maintype} and
22\var{subtype}.
23
24Note that \var{subtype} is optional; if omitted, then subpart MIME
25type matching is done only with the main type. \var{maintype} is
Barry Warsawc5f8fe32001-09-26 22:21:52 +000026optional too; it defaults to \mimetype{text}.
Barry Warsaw5e634632001-09-26 05:23:47 +000027
28Thus, by default \function{typed_subpart_iterator()} returns each
Barry Warsawc5f8fe32001-09-26 22:21:52 +000029subpart that has a MIME type of \mimetype{text/*}.
Barry Warsaw5e634632001-09-26 05:23:47 +000030\end{funcdesc}
31
Barry Warsaw5b9da892002-10-01 01:05:52 +000032The following function has been added as a useful debugging tool. It
33should \emph{not} be considered part of the supported public interface
34for the package.
35
36\begin{funcdesc}{_structure}{msg\optional{, fp\optional{, level}}}
37Prints an indented representation of the content types of the
38message object structure. For example:
39
40\begin{verbatim}
41>>> msg = email.message_from_file(somefile)
42>>> _structure(msg)
43multipart/mixed
44 text/plain
45 text/plain
46 multipart/digest
47 message/rfc822
48 text/plain
49 message/rfc822
50 text/plain
51 message/rfc822
52 text/plain
53 message/rfc822
54 text/plain
55 message/rfc822
56 text/plain
57 text/plain
58\end{verbatim}
59
60Optional \var{fp} is a file-like object to print the output to. It
61must be suitable for Python's extended print statement. \var{level}
62is used internally.
63\end{funcdesc}