The MultiFile object enables you to treat sections of a text
file as file-like input objects, with '' being returned by
readline() when a given delimiter pattern is encountered. The
defaults of this class are designed to make it useful for parsing
MIME multipart messages, but by subclassing it and overriding methods
it can be easily adapted for more general use.
Create a multi-file. You must instantiate this class with an input
object argument for the MultiFile instance to get lines from,
such as as a file object returned by open().
MultiFile only ever looks at the input object's
readline(), seek() and tell() methods, and
the latter two are only needed if you want random access to the
individual MIME parts. To use MultiFile on a non-seekable
stream object, set the optional seekable argument to false; this
will prevent using the input object's seek() and
It will be useful to know that in MultiFile's view of the world, text
is composed of three kinds of lines: data, section-dividers, and
end-markers. MultiFile is designed to support parsing of
messages that may have multiple nested message parts, each with its
own pattern for section-divider and end-marker lines.