[Twisted-Python] More general process.Process class

Jean-Paul Calderone exarkun at divmod.com
Wed Jul 4 10:21:28 EDT 2007

On Wed, 04 Jul 2007 16:13:14 +0200, Markus Schiltknecht <markus at bluegap.ch> wrote:
>I'm currently fiddling with spawnProcess() and such, trying to stream it's 
>output to somewhere else. In a first attempt, I've tried to cache the data 
>in the ProcessProtocol's outReceived() call.
>Then, I've realized, that twisted already has quite nice abstractions of 
>Producers and Consumers. I would like to use them, as they seem to fit 
>And in my case, it would even make much sense to *not* read all the data 
>from the process, but leave it there, waiting on the file descriptor, until 
>I'm ready to process the data.
>Unfortunately, AFAICT the producers attached to the process - namely the 
>ProcessReader() instances created by process.Process - are hard wired to the 
>ProcessProtocol's dataReceived() method. While I would like to use these 
>producers directly, instead of providing such a ProcessProtocol.
>I'm thinking about ripping out the protocol handling from the 
>process.Process class. Instead let process.Process return a list of 
>producers and consumers in self.pipes, as requested. Then let another 
>wrapper class bridge between those and the ProcessProtocol.

Do you need more granularity than Process.pauseProducing/resumeProducing

Aside from that, purely as a point of procedure, any changes you make to
Process at the moment are likely to conflict with a development branch
which is currently outstanding.  You might want to look at that or help
get it merged before starting on any changes of your own.


More information about the Twisted-Python mailing list