On Nov 1, 2011, at 4:36 PM, Phil Mayers wrote:

> One example, we use a tiny script wrapping DeferredSemaphore and 
> t.p.utils.getProcessOutput to parallelise SSH scanning, because 
> ssh-keyscan is (ahem) poorly implemented.
> 
> Maybe I knock up more of these short 20-liners than is common? And 
> typing "reactor, " a lot in them seems a bit, well... retrograde.

Hopefully you only need to pass it in at the top level to a few things, not 
everywhere to everything :).

For example, with something like twisted.web.client.Agent, you pass the reactor 
once and then you have an object you can call methods on, you don't need to 
keep repeating it.  If getProcessOutput were a method of a more helpful object, 
perhaps you'd be able to type 'reactor' a bit less.

Another possible eventual improvement here is that Twisted include a 
script-running tool which creates the reactor for you and passes it, either to 
a specified function or as a magic global in a script.  Then you should just 
pass 'reactor' to the top-level stuff in your script.  Sort of like 'twistd' 
but for one-off things where you don't want to go to the trouble to build a 
plugin or even a Service.

As a bonus, such a tool could call 'reactor.run()' for you automatically, 
eliminating some newbie confusion about when it's appropriate to do that.  (And 
ideally, 'reactor.stop' when some appropriate Deferred is fired, but that gets 
into more thinking than I want to do about this right now...)

-glyph
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to