[Python-3000] iostack and sock2

Greg Ewing greg.ewing at canterbury.ac.nz
Mon Jun 5 00:52:07 CEST 2006


tomer filiba wrote:

> NetworkStreams have a readavail() method, which reads all the available
> in-queue data, as well as a may_read and a may_write properties

I'm -1 on having multiple kinds of read methods which
are available only on some kinds of streams. The
basic interface of a stream should be dirt simple.

Given a read-up-to-n-bytes method, it's easy to implement
read-exactly-n-bytes on top of it in a completely
generic way. So provide it as a function that operates
on a stream, or a method inherited from a generic base
class.

> maybe introduce a new select module that has select-objects, like
> the Poll() class, that will default to using select(), but could use
> kqueue/epoll when possible?

My current opinion on select-like functionality is
that you shouldn't need to import a module for it at
all. Rather, you should be able to attach a callback
directly to a stream. Then there just needs to be
a wait_for_something_to_happen() function somewhere
(perhaps with a timeout).

Underneath, the implementation would use select,
poll, or whatever is most fun on the platform
concerned.

--
Greg


More information about the Python-3000 mailing list