class_docstr: Wrapper for a non-async context manager that allows entering and exiting it in EventLoop-friendly manner
class_docstr_tok: ["Wrapper","for","a","non-async","context","manager","that","allows","entering","and","exiting","it","in","EventLoop-friendly","manner"]
code: def __init__(self, context: AbstractContextManager):
      self._context = context
  
file_path: hivemind/hivemind/utils/asyncio.py
imports: import asyncio
  import concurrent.futures
  import multiprocessing
  import os
  from concurrent.futures import ThreadPoolExecutor
  from contextlib import AbstractAsyncContextManager, AbstractContextManager, asynccontextmanager
  from typing import AsyncIterable, AsyncIterator, Awaitable, Callable, Iterable, Optional, Tuple, TypeVar, Union
  import uvloop
  from hivemind.utils.logging import get_logger
label_desc: Use image node_id 1 to create a new _AsyncContextWrapper object from inherited base classes: AbstractAsyncContextManager with example: obj = _AsyncContextWrapper(context)