This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ethan.furman
Recipients bquinlan, cool-RR, ethan.furman, jnoller, paul.moore, pitrou, sbt
Date 2015-05-15.15:59:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1431705576.49.0.498619980139.issue24195@psf.upfronthosting.co.za>
In-reply-to
Content
Short History:
=============

(Ram Rachum)
What do you think about adding a method: `Executor.filter`?
I was using something like this: 

    my_things = [thing for thing in things if some_condition(thing)]

But the problem was that `some_condition` took a long time to run waiting on I/O, which is a great candidate for parallelizing with ThreadPoolExecutor. I made it work using `Executor.map` and some improvizing, but it would be nicer if I could do:

    with concurrent.futures.ThreadPoolExecutor(100) as executor:
        my_things = executor.filter(some_condition, things)

And have the condition run in parallel on all the threads.

(Nick Coughlan)
I think this is sufficiently tricky to get right that it's worth adding filter() as a parallel to the existing map() API.
History
Date User Action Args
2015-05-15 15:59:36ethan.furmansetrecipients: + ethan.furman, paul.moore, bquinlan, pitrou, jnoller, cool-RR, sbt
2015-05-15 15:59:36ethan.furmansetmessageid: <1431705576.49.0.498619980139.issue24195@psf.upfronthosting.co.za>
2015-05-15 15:59:36ethan.furmanlinkissue24195 messages
2015-05-15 15:59:36ethan.furmancreate