Carregamento de lista de papéis lento
GustavoOS opened this issue · 1 comments
GustavoOS commented
Ao fazer uma consulta a uma lista de papéis, são feitas múltiplas requisições de maneira sequencial, o que demora, dependendo da lista.
Sugestão: utilizar a API threadpoolexecutor para fazer as requisições em paralelo, otimizando o tempo de busca. Essa alternativa seria substitutiva ao atual processo que utiliza a iteração usando for.
GustavoOS commented
@mv sugestão de fix, é na detalhes.py:
from concurrent.futures import ThreadPoolExecutor
def get_detalhes_list(lst):
"""
Get detailed data for a given list
Input: list
Output: DataFrame
"""
with ThreadPoolExecutor() as executor:
result = executor.map(get_papel, lst)
result = pd.concat(result)
# duplicate column (papel is the index already)
try:
result.drop('Papel', axis='columns', inplace=True)
except: # pragma: no cover
logging.error('drop column. Error=[{}].'.format(sys.exc_info()[1]))
return result.sort_index()