[Python-ideas] Tulip / PEP 3156 (original) (raw)
[Python-ideas] Tulip / PEP 3156 - subprocess events
Paul Moore p.f.moore at gmail.com
Thu Jan 17 13:23:10 CET 2013
- Previous message: [Python-ideas] Tulip / PEP 3156 - subprocess events
- Next message: [Python-ideas] Tulip / PEP 3156 - subprocess events
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 16 January 2013 18:21, Guido van Rossum <guido at python.org> wrote:
OK, off to do a lot of spec reading and then some coding. With luck, you'll be patient with dumb questions from me on the way :-) I will be!
OK, I'm reading the PEP through now. I'm happy with the basics of the event loop, and it seems fine to me. When I reached create_transport, I had to skip ahead to the definitions of transport and protocol, as create_transport makes no sense if you don't know about those. Once I've read that, though, the whole transport/protocol mechanism seems to make reasonable sense to me. Although the host and port arguments to create_transport are clearly irrelevant to the case of a transport managing a process as a data source. So (a) I see why you say I'd need a new transport creation method, but (b) it strikes me that something more general that covered both cases (and any others that may come up later) would be better.
On the other hand, given the existence of create_transport, I'm now struggling to understand why a user would ever use add_reader/add_writer rather than using a transport/protocol. And if they do have a reason to do so, why does a similar reason not apply to having an add_pipe type of method for waiting on (subprocess) pipes?
In general, it still feels to me like the socket use case is being treated as "special", and other data sources and sinks (subprocesses being my use case, but I'm sure others exist) are either second-class or require a whole set of their own specialised methods, which isn't practical.
As a strawman type of argument in favour of extensibility, consider a very specialist user with a hardware device that sends input via (say) a serial port. I can easily imagine that user wanting to plug his device data into the Python event loop. As this is a very specialised area, I wouldn't expect the core code to be able to help, but I would expect him to be able to write code that plugs into the standard event loop seamlessly. Ideally, I'd like to use the subprocess case as a proof that this is practical.
Does that make sense? Paul.
- Previous message: [Python-ideas] Tulip / PEP 3156 - subprocess events
- Next message: [Python-ideas] Tulip / PEP 3156 - subprocess events
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]