Added documentation for the xreadlines module & related changes. The

documentation was written by Jeff Epler (thanks!).
This commit is contained in:
Fred Drake 2001-01-09 22:47:46 +00:00
parent 92f4b366cb
commit 3c48ef7de8
5 changed files with 67 additions and 6 deletions

View File

@ -38,6 +38,7 @@ Andrew Dalke
Ben Darnell
Robert Donohue
Fred L. Drake, Jr.
Jeff Epler
Michael Ernst
Blame Andy Eskilsson
Martijn Faassen

View File

@ -190,6 +190,7 @@ LIBFILES= $(MANSTYLES) $(COMMONTEX) \
../lib/libuu.tex \
../lib/libsunaudio.tex \
../lib/libfileinput.tex \
../lib/libxreadlines.tex \
../lib/libimaplib.tex \
../lib/libpoplib.tex \
../lib/libcalendar.tex \

View File

@ -121,6 +121,7 @@ and how to embed it in other applications.
\input{libarray}
\input{libcfgparser}
\input{libfileinput}
\input{libxreadlines}
\input{libcalendar}
\input{libcmd}
\input{libshlex}

View File

@ -1112,6 +1112,12 @@ Write a list of strings to the file. There is no return value.
\method{writelines()} does not add line separators.)
\end{methoddesc}
\begin{methoddesc}[file]{xreadlines}{}
Equivalent to
\function{xreadlines.xreadlines(\var{file})}.\refstmodindex{xreadlines}
(See the \refmodule{xreadlines} module for more information.)
\end{methoddesc}
File objects also offer a number of other interesting attributes.
These are not required for file-like objects, but should be

52
Doc/lib/libxreadlines.tex Normal file
View File

@ -0,0 +1,52 @@
\section{\module{xreadlines} ---
Efficient iteration over a file}
\declaremodule{extension}{xreadlines}
\modulesynopsis{Efficient iteration over the lines of a file.}
This module defines a new object type which can efficiently iterate
over the lines of a file. An xreadlines object is a sequence type
which implements simple in-order indexing beginning at \code{0}, as
required by \keyword{for} statement or the
\function{filter()} function.
Thus, the code
\begin{verbatim}
import xreadlines, sys
for line in xreadlines.xreadlines(sys.stdin):
pass
\end{verbatim}
has approximately the same speed and memory consumption as
\begin{verbatim}
while 1:
lines = sys.stdin.readlines(8*1024)
if not lines: break
for line in lines:
pass
\end{verbatim}
except the clarity of the \keyword{for} statement is retained in the
former case.
\begin{funcdesc}{xreadlines}{fileobj}
Return a new xreadlines object which will iterate over the contents
of \var{fileobj}. \var{fileobj} must have a \method{readlines()}
method that supports the \var{sizehint} parameter.
\end{funcdesc}
An xreadlines object \var{s} supports the following sequence
operation:
\begin{tableii}{c|l}{code}{Operation}{Result}
\lineii{\var{s}[\var{i}]}{\var{i}'th line of \var{s}}
\end{tableii}
If successive values of \var{i} are not sequential starting from
\code{0}, this code will raise \exception{RuntimeError}.
After the last line of the file is read, this code will raise an
\exception{IndexError}.