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 <[email protected]> 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 - [email protected] > http://mail.python.org/mailman/listinfo/distutils-sig > _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
