blob: d1a8f98064b8942e32257cf62d6030b5bab00dfa [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
Barry Warsaw52b39f52003-03-11 04:40:14 +00009\begin{funcdesc}{body_line_iterator}{msg\optional{, decode}}
Barry Warsaw5e634632001-09-26 05:23:47 +000010This 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.
Barry Warsaw52b39f52003-03-11 04:40:14 +000016
17Optional \var{decode} is passed through to \method{Message.get_payload()}.
Barry Warsaw5e634632001-09-26 05:23:47 +000018\end{funcdesc}
19
20\begin{funcdesc}{typed_subpart_iterator}{msg\optional{,
21 maintype\optional{, subtype}}}
22This iterates over all the subparts of \var{msg}, returning only those
23subparts that match the MIME type specified by \var{maintype} and
24\var{subtype}.
25
26Note that \var{subtype} is optional; if omitted, then subpart MIME
27type matching is done only with the main type. \var{maintype} is
Barry Warsawc5f8fe32001-09-26 22:21:52 +000028optional too; it defaults to \mimetype{text}.
Barry Warsaw5e634632001-09-26 05:23:47 +000029
30Thus, by default \function{typed_subpart_iterator()} returns each
Barry Warsawc5f8fe32001-09-26 22:21:52 +000031subpart that has a MIME type of \mimetype{text/*}.
Barry Warsaw5e634632001-09-26 05:23:47 +000032\end{funcdesc}
33
Barry Warsaw5b9da892002-10-01 01:05:52 +000034The following function has been added as a useful debugging tool. It
35should \emph{not} be considered part of the supported public interface
36for the package.
37
38\begin{funcdesc}{_structure}{msg\optional{, fp\optional{, level}}}
39Prints an indented representation of the content types of the
40message object structure. For example:
41
42\begin{verbatim}
43>>> msg = email.message_from_file(somefile)
44>>> _structure(msg)
45multipart/mixed
46 text/plain
47 text/plain
48 multipart/digest
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 message/rfc822
58 text/plain
59 text/plain
60\end{verbatim}
61
62Optional \var{fp} is a file-like object to print the output to. It
63must be suitable for Python's extended print statement. \var{level}
64is used internally.
65\end{funcdesc}