Israel Brewster wrote: > When using pool.imap to apply a function over a list of values, what is > the proper way to pass additional arguments to the function, specifically > in my case a Queue that the process can use to communicate back to the > main thread (for the purpose of reporting progress)? I have seen > suggestions of using starmap, but this doesn’t appear to have a “lazy” > variant, which I have found to be very beneficial in my use case. The > Queue is the same one for all processes, if that makes a difference. > > I could just make the Queue global, but I have always been told not too. > Perhaps this is an exception?
How about wrapping the function into another function that takes only one argument? A concise way is to do that with functools.partial(): def f(value, queue): ... pool.imap(partial(f, queue=...), values) > > --- > Israel Brewster > Software Engineer > Alaska Volcano Observatory > Geophysical Institute - UAF > 2156 Koyukuk Drive > Fairbanks AK 99775-7320 > Work: 907-474-5172 > cell: 907-328-9145 > -- https://mail.python.org/mailman/listinfo/python-list