1+ from __future__ import annotations
2+
13import asyncio
24import sys
3- from typing import Any
5+ from typing import TYPE_CHECKING , Any
46
57import sentry_sdk
68from loguru import logger
1214from hoyo_buddy .config import CONFIG
1315from hoyo_buddy .utils .misc import get_project_version , should_ignore_error
1416
17+ if TYPE_CHECKING :
18+ from collections .abc import Coroutine
19+
1520__all__ = ("setup_async_event_loop" , "setup_sentry" , "wrap_task_factory" )
1621
1722_tasks_set : set [asyncio .Task [Any ] | asyncio .Future [Any ]] = set ()
@@ -21,7 +26,7 @@ def wrap_task_factory() -> None:
2126 loop = asyncio .get_running_loop ()
2227 original_factory = loop .get_task_factory ()
2328
24- async def coro_wrapper (coro : asyncio . _CoroutineLike [ Any ], coro_name : str | None = None ) -> Any :
29+ async def coro_wrapper (coro : Coroutine [ Any , Any , Any ], coro_name : str | None = None ) -> Any :
2530 try :
2631 return await coro
2732 except Exception as e :
@@ -37,7 +42,7 @@ async def coro_wrapper(coro: asyncio._CoroutineLike[Any], coro_name: str | None
3742 raise
3843
3944 def new_factory (
40- loop : asyncio .AbstractEventLoop , coro : asyncio . _CoroutineLike [ Any ], ** kwargs
45+ loop : asyncio .AbstractEventLoop , coro : Coroutine [ Any , Any , Any ], ** kwargs
4146 ) -> asyncio .Task [Any ] | asyncio .Future [Any ]:
4247 wrapped_coro = coro_wrapper (coro , coro_name = kwargs .get ("name" ))
4348
0 commit comments