Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
🎞 PhotoWorks 200 (exp.2004)
Есть своя магия в съёмке на плёнку, у которой вышел срок годности. Привлекает непредсказуемость результата, азарт и уникальная возможность попробовать редкие экземпляры, которые уже давно не выпускаются.
📷 Olympus Pen FT/ F.Zuiko 38/1.8
P.S. Кто-то собирает коробочки, кто-то канистры.
А моя коллекция состоит из снимков тех плёнок, которые я когда-либо использовала для своих фотографий.
#filmgallery
#olympuspenft
🎞 Wolfen NC500
Не первая моя катушка данной плёнки, но каждый раз она получается по-своему, со своим настроением.
📷 Olympus Pen FT/ F.Zuiko 38/1.8
#filmgallery
#olympuspenft
🎞 Kodak Ektar 100
Цветная плёнка — нечастый гость в моём канале. И дело не в её цене.
Я заметила тенденцию: дома мне больше нравится снимать на чёрно-белую. Продолжительность съёмки одной катушки цвета равна 1.5÷3 катушкам ч/б. Зато в путешествии цветная улетает быстрее, и по количеству она то сравнивается с чёрно-белой, то даже чуть её превосходит.
Поэтому у меня два фотоаппарата: один для цвета, другой для ч/б.
📎 268
📆 08_2025
📷 Olympus Pen FT/ F.Zuiko 38/1.8
🎞 Ilford Pan 100
#filmgallery
#olympuspenft
#ilford
#ilfordpan100
🎞 Adox CHS 100 II
Случайное наложения кадров и коробочку не видно, значит в будущем будет дубль два
📎 250
📆 06_2025
🗺 Черняховск, Калининградская область
📷 Olympus Pen FT/ F.Zuiko 38/1.8
🎞 Agfa Aviphot
#filmgallery
#olympuspenft
#agfa
#agfaaviphot
Выбор
Каждый раз - это дилемма. И не просто между цветной и черно-белой, свежей или просрочкой, проверенной любимой или неизвестной новой плёнкой.
Нет, у меня в голове куча критериев: фотоаппарат, параметры плёнки, время года, планируется ли поездка, личные задумки сюжетов, настроение и т.п.
А порой это просто интуитивный выбор ✨
📎 247
🗺 Калининград
📷 Olympus Pen FT/ F.Zuiko 38/1.8
🎞 Kodak Proimage 100 (exp.2023)
📆 05_2025
📌 iso 100
P.S. на фото ещё не все.
верх - чб / низ - цвет
#olympuspenft
#filmgallery
#kodak
#kodakproimage100