You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
526 B
Python

import asyncio
import sys
import traceback
from typing import Coroutine
async def run_listeners(listeners: list, *args, **kwargs) -> Coroutine[None, None, None]:
for listener in listeners:
try:
res = listener(*args, **kwargs)
if asyncio.iscoroutine(res):
await res
except Exception as ex:
print(
"Error while processing callback: %s" % ex,
file=sys.stderr,
)
traceback.print_exc()
return None