| Conditions | 4 | 
| Total Lines | 15 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 1 | ||
| Bugs | 1 | Features | 0 | 
| 1 | # encoding: utf-8  | 
            ||
| 12 | def p_map(pool, function, data):  | 
            ||
| 13 | """replacement for Pool.map from multiprocessing.  | 
            ||
| 14 | The ability to pickle objects using the Python pickle / cPickle module  | 
            ||
| 15 | limits the functions and data you can process with Pool.map.  | 
            ||
| 16 | |||
| 17 | Here we use dill instead, which eg can pickle instance methods.  | 
            ||
| 18 | |||
| 19 | Inspired by  | 
            ||
| 20 | https://stackoverflow.com/questions/8804830/python-multiprocessing-pickling-error/24673524#24673524  | 
            ||
| 21 | """  | 
            ||
| 22 | |||
| 23 | assert isinstance(data, (list, tuple, set))  | 
            ||
| 24 | payload = [dill.dumps((function, args)) for args in data]  | 
            ||
| 25 | results = pool.map(execute, payload)  | 
            ||
| 26 | return [dill.loads(result) for result in results]  | 
            ||
| 27 |