Вы не можете использовать map
с функциями asyn c, так как map является синхронным и не приостанавливает выполнение внутри l oop. То же самое относится к конструктору tuple
, который ожидает синхронный генератор.
Чтобы исправить это, вы можете заменить пару map
/ tuple
на понимание списка, которое может быть asyn c, и легко конвертируется в кортеж:
some_tuple = tuple([await fn(elem) for elem in iterable])
Другой вариант - использовать asyn c версии map
и tuple
из пакета asyncstdlib , который также предоставляет много дополнительного и полезного функционала:
import asyncstdlib.builtins.map as amap
import asyncstdlib.builtins.tuple as atuple
some_tuple = await atuple(amap(fn, iterable))