Передайте python объект в качестве аргумента в pool.map (). Многопроцессорная обработка в Python - PullRequest
0 голосов
/ 05 марта 2020

У меня есть функция, которая принимает объект и возвращает pandas фрейм данных после выполнения некоторых операций над элементами данных объекта. Это commits объект из библиотеки GitPython. Я хочу запустить эту функцию параллельно, используя многопроцессорность. Поэтому я создал объект пула и использовал:

repo = Repo(path)
results = pool.map(func,list(repo.iter_commits('master')))

, где func:

def func(obj):
    return(pd.DataFrame({"date":[obj.commited_date],"author_name":[obj.author.name]}))

, а obj_list содержит список объектов фиксации, созданных с использованием Git Python библиотечная функция iter_commits() примерно так:

obj_list = repo.iter_commits('master', max_count=10)

При этом возвращается следующая ошибка:

RecursionError: maximum recursion depth exceeded

Эта ошибка не отображается, когда я передаю список строк , Это дает только эту ошибку, когда я передаю список объектов. Как это исправить? И как передать список объектов в функцию в качестве аргумента, чтобы запустить его параллельно.

...