MCPcopy Index your code
hub / github.com/nonebot/nonebot2 / run_sync_ctx_manager

Function run_sync_ctx_manager

nonebot/utils.py:265–276  ·  view source on GitHub ↗

一个用于包装 sync context manager 为 async context manager 的执行函数

(
    cm: AbstractContextManager[T],
)

Source from the content-addressed store, hash-verified

263
264@asynccontextmanager
265async def run_sync_ctx_manager(
266 cm: AbstractContextManager[T],
267) -> AsyncGenerator[T, None]:
268 """一个用于包装 sync context manager 为 async context manager 的执行函数"""
269 try:
270 yield await run_sync(cm.__enter__)()
271 except Exception as e:
272 ok = await run_sync(cm.__exit__)(type(e), e, None)
273 if not ok:
274 raise e
275 else:
276 await run_sync(cm.__exit__)(None, None, None)
277
278
279@overload

Callers 1

_solveMethod · 0.90

Calls 1

run_syncFunction · 0.85

Tested by

no test coverage detected