GNU Info

Info Node: (python2.1-lib.info)MultiFile Objects

(python2.1-lib.info)MultiFile Objects


Next: MultiFile Example Prev: multifile Up: multifile
Enter node , (file) or (file)node

MultiFile Objects
-----------------

A `MultiFile' instance has the following methods:

`readline(str)'
     Read a line.  If the line is data (not a section-divider or
     end-marker or real EOF) return it.  If the line matches the
     most-recently-stacked boundary, return `''' and set `self.last' to
     1 or 0 according as the match is or is not an end-marker.  If the
     line matches any other stacked boundary, raise an error.  On
     encountering end-of-file on the underlying stream object, the
     method raises `Error' unless all boundaries have been popped.

`readlines(str)'
     Return all lines remaining in this part as a list of strings.

`read()'
     Read all lines, up to the next section.  Return them as a single
     (multiline) string.  Note that this doesn't take a size argument!

`seek(pos[, whence])'
     Seek.  Seek indices are relative to the start of the current
     section.  The POS and WHENCE arguments are interpreted as for a
     file seek.

`tell()'
     Return the file position relative to the start of the current
     section.

`next()'
     Skip lines to the next section (that is, read lines until a
     section-divider or end-marker has been consumed).  Return true if
     there is such a section, false if an end-marker is seen.  Re-enable
     the most-recently-pushed boundary.

`is_data(str)'
     Return true if STR is data and false if it might be a section
     boundary.  As written, it tests for a prefix other than `'-'`-'' at
     start of line (which all MIME boundaries have) but it is declared
     so it can be overridden in derived classes.

     Note that this test is used intended as a fast guard for the real
     boundary tests; if it always returns false it will merely slow
     processing, not cause it to fail.

`push(str)'
     Push a boundary string.  When an appropriately decorated version of
     this boundary is found as an input line, it will be interpreted as
     a section-divider or end-marker.  All subsequent reads will return
     the empty string to indicate end-of-file, until a call to `pop()'
     removes the boundary a or `next()' call reenables it.

     It is possible to push more than one boundary.  Encountering the
     most-recently-pushed boundary will return EOF; encountering any
     other boundary will raise an error.

`pop()'
     Pop a section boundary.  This boundary will no longer be
     interpreted as EOF.

`section_divider(str)'
     Turn a boundary into a section-divider line.  By default, this
     method prepends `'-'`-'' (which MIME section boundaries have) but
     it is declared so it can be overridden in derived classes.  This
     method need not append LF or CR-LF, as comparison with the result
     ignores trailing whitespace.

`end_marker(str)'
     Turn a boundary string into an end-marker line.  By default, this
     method prepends `'-'`-'' and appends `'-'`-'' (like a
     MIME-multipart end-of-message marker) but it is declared so it can
     be be overridden in derived classes.  This method need not append
     LF or CR-LF, as comparison with the result ignores trailing
     whitespace.

Finally, `MultiFile' instances have two public instance variables:

`level'
     Nesting depth of the current part.

`last'
     True if the last end-of-file was for an end-of-message marker.


automatically generated by info2www version 1.2.2.9