Subject: QIO 0.3, fast read-only file object module
Newsgroups: comp.lang.python.announce

The QIO module borrows a few tricks from INN and adds some of its own
to make common Python file operations way lots more faster and stuff.
It is suitable for reading sockets and large text files; it doesn't
support writing.

Because of the read-ahead buffering, QIO will work best with sequential
access.  For compatibility's sake it will handle slurping a whole file
in one read() and doing random access, but the optimizations can
actually work against you in those cases.

The readline*() methods include some enhancements over stock file
objects:

 * You can specify a custom line terminator if '\n' isn't what you want.

 * Line terminators are optionally trimmed. (To find eof when trimming
   is enabled, you look for None instead of "")

 * A magic trim=2 argument makes quick work of "lines and dots"
   protocols like SMTP, NNTP and gopher, handling double-dots and CRLF
   shenanigans so you can use something like `message=s.readines()' to
   grab a mail message off the wire in one step.

To show how the trim=2 thingy works, a modified version of Python's
nntplib.py is included.

Since this module is derived from a piece of INN, it carries the same
license (which is BSDish).  See the package for details.

Direct questions, problems, fixes, portability stuff to me at
<gerglery@usa.net>.

<P><A HREF="http://members.xoom.com/meowing/python">QIO 0.3</A> - A fast
   read-only Python file object module.  (15-Sep-99)
