Отдельно разберём 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
В 2022 году отмечается 350 лет со дня рождения Петра I. Это знаковое событие для всей страны. ПАО «Газпром» объявляет о старте инклюзивного проекта «Петровский пленэр».
⠀
Идея проекта — объединить 175 воспитанников специализированных учебных заведений Санкт-Петербурга и 175 детей работников дочерних обществ и организаций ПАО «Газпром» для создания 350 совместных творческих работ.
⠀
Отборочный тур призван определить лучших авторов от компаний Группы Газпром для участия в Проекте. Подробную информацию ищите на сайте www.gazprofakel.ru
⠀
Мы начинаем!
#газпром#газпром_факел#петровский_пленер#gazprom#gazpromfakel
🔻La mai bine de o lună de zile de la sistarea de către gigantul rus #Gazprom a livrării gazelor în regiunea transnistreană, o soluție de lungă durată pentru criza energetică provocată așa și încă nu a fost găsită.
🔻Soluţia promovată de #Moscova şi autorităţile din regiunea separatistă cu livrarea de gaze de către o firmă din #Ungaria (de fapt din #Elveţia), dar cu plata livrărilor prin intermediul unei firme din #Dubai, cu prestări de servicii și comerț, nu este nicidecum o soluţie de durată, dar a fost acceptată în final de Guvernul Republicii Moldova.
🔻Coincidență sau nu, dar cu câteva zile înainte de anunțul Gazprom-ului de sistare a livrărilor de gaze, grupul #MET, ales să livreze gaze în regiunea secesionistă, și-a deschis o firmă la #Chișinău.
Citește ancheta: https://www.rise.md/drumul-gazului-umanitar-din-rusia-in-transnistria-via-dubai-elvetia/
🎄 Мечты сбываются — особенно под Новый год! 🎄
В Свободном прошла добрая акция «Письмо Деду Морозу», в которой местное отделение партии «Новые люди» помогло исполнить самые искренние желания воспитанников специального (коррекционного) детского дома.
Ребята написали не о чём-то далёком — они мечтали поиграть в лазертаг! И это желание стало реальностью благодаря совместным усилиям и поддержке лазертаг-клуба «Лазерстрайк 28». Дети устроили настоящую тактическую игру — с азартом, командной работой и морем радости. Каждый чувствовал себя героем!
А после захватывающей битвы каждому вручили небольшой, но тёплый новогодний подарок — как напоминание о том, что о них помнят и любят.
Огромная благодарность клубу «Лазерстрайк 28» и всем, кто помог сделать этот день особенным!
Пусть новый год принесёт детям свет, заботу и ещё больше поводов для улыбок.
С наступающим! ✨
#МестноеОтделение #ВместеМыСила#НовыеЛюди #Свободный#МестныйСекретарь#ГородБудущего
#юрист#юрфак#право#агпз#гхк#gpz#gazprom#свободный#svb