[Distutils] in search of graceful co-routines

phil jones interstar at gmail.com
Wed May 18 00:41:54 CEST 2011


Yes, but it's a fascinating question. Where can I follow the answers?

phil

On Tue, May 17, 2011 at 6:04 PM, Chris Withers <chris at simplistix.co.uk> wrote:
> Apologies, wrong list...
>
> Chris
>
> On 17/05/2011 17:53, Chris Withers wrote:
>>
>> Hi All,
>>
>> I'm looking for a graceful pattern for the situation where I have a
>> provider of a sequence, the consumer of a sequence and code to moderate
>> the two, and where I'd like to consumer to be able to signal to the
>> provider that it hasn't succeeded in processing one element in the queue.
>>
>> So, I'd want the controlling code to look a lot like:
>>
>> for item in provider:
>> try:
>> consumer.handleItem(self)
>> except:
>> provider.failed(item)
>>
>> Now, since the sequence is long, and comes from a file, I wanted the
>> provider to be an iterator, so it occurred to me I could try and use the
>> new 2-way generator communication to solve the "communicate back with
>> the provider", with something like:
>>
>> for item in provider:
>> try:
>> consumer.handleItem(self)
>> except:
>> provider.send('fail')
>> else:
>> provider.send('succeed')
>>
>> ..but of course, this won't work, as 'send' causes the provider
>> iteration to continue and then returns a value itself. That feels weird
>> and wrong to me, but I guess my use case might not be what was intended
>> for the send method.
>>
>> Anyway, I wonder how other people would write this?
>> (I'm particularly interested in a sane way to use the two way
>> communication that PEP 342 introduced)
>>
>> cheers,
>>
>> Chris
>>
>
> --
> Simplistix - Content Management, Batch Processing & Python Consulting
>           - http://www.simplistix.co.uk
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig
>


More information about the Distutils-SIG mailing list