There has been some discussion over email between myself and several Twisted developers regarding the possibility of adding support for PEP 3148 futures and executors to Twisted. I'm starting this thread to move the conversation to this mailing list to gain a broader audience.
For those who do not know what PEP 3148 is about, suffice to say that it's an API for deferred execution of code. The reference implementation can be found in the Python 3.2 standard library under the package name concurrent.futures. A backport that works on Python 2.5, 2.6, 2.7 and 3.1 has been made available by Brian Quinlan and myself and is available for download at the Python Package Index. A brief summary of the email conversations: * The purpose of integrating PEP 3148 support is the intended shift towards a common API for creating asynchronous applications * Deferreds and Futures are alike in purpose but very different under the hood * Support for the Futures API cannot be integrated directly to Deferreds because of the "result" attribute which is a method in Future but a value in Deferred * Some people suggested wrapping Futures in Deferreds, though I have yet to hear a rationale for this * PEP 3148 executor support could be directly integrated to Twisted's thread pools (and by extension, reactors) as there are no naming conflicts that I'm aware of The main focus of the discussion is to figure out how to best integrate support for this new API to Twisted. If possible, existing protocols should remain compatible through the use of adapters or some other mechanism. If not, a way to port them over with a minimal amount of work would be the next target. _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python