Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
Witch Camp (Ghana) — I've Forgotten Now Who I Used To Be (Six Degrees, 2021)
#traditional#gyil#kologo#talking_drum#Ghana
Лагеря ведьм — поселения в Гане, Бенине и Того, появившиеся в XIX–XX веках, где живут люди, — прежде всего женщины, — изгнанные из своих деревень из-за подозрений в колдовстве. Отверженных обвиняют в использовании магии по разным причинам, включая психическе расстройства. Раньше «колдунов» убивали, но теперь они находят убежище в подобных лагерях. Несмотря на то, что некоторые исследователи сравнивают эти поселения с тюрьмами, а правительство считает их пятном на репутации государства, жители часто остаются в них добровольно, удерживаемые страхом мести со стороны своих бывших соседей. Альбом «I've Forgotten Now Who I Used To Be» представляет уникальные полевые записи из лагерей ведьм Ганы, сделанные Иэном Бреннаном, познакомившим нас с Tinariwen и Ustad Saami, в сотрудничестве с его женой, режиссером и фотографом Мариленой Умухоза Делли.
Spotify | AppleMusic | Bandcamp
Alostmen — Kologo (Strut Records, 2021)
#kologo#afrobeat#highlife#goje#talking_drum#djembe#conga#Ghana
Колого — музыкальный стиль, названный в честь одноименной двухструнной лютни. Этот стиль популярен среди народа фрафра, проживающего в северной Гане. King Ayisoba, Prince Buju, Atamina и Ayuune Sule популяризовали этот стиль, смешав его, как полагается, с элементами популярной музыки. Дебютный альбом группы Alostmen, как и работы этих артистов, довольно далек от традиционной музыки. Alostmen отличает интерес к хип-хопу, регги, хайлайфу и малийской музыке, элементы которых они попытались включить в свое творчество. Более того, их техника исполнения на колого напоминает скорее гитарную, чем традиционную. Stevo и Wanlov The Kubolor, основатели группы, начали работу над альбомом на портативной студии, путешествуя по Уганде и Гане в составе группы Afro Gypsy. На получившейся пластинке отметилось множество музыкантов, среди которых звезда хайлайфа Gyedu-Blay Ambolley.
Spotify | AppleMusic | Bandcamp