Разродился вот этим:
async def wait_event(add_callback, del_callback):                                                    
     ev = asyncio.Event()                                                                             
     def callback(*args, **kwargs):                                                                   
         ev.set()                                                                                     
     add_callback(callback)                                                                           
     await ev.wait()                                                                                  
     del_callback(callback)
...
await wait_event(my_class.add_some_event_listener, my_class.del_some_event_listener)
my_class - библиотечный класс из того же проекта. Переводить some_event на async не хочется, т.к. в некоторых юз кейсах важен порядок обработки ивентов (а в некоторых нет, а в других достаточно дождаться однократного ивента, как в примере выше).
Но детектор говнокода попискивает. Расскажите, как надо. Стоит ли в API класса на каждый event_listener добавить свой async def wait_event()?
Синтаксис async/await использую ~третий раз в жизни

