code: def async_stream_method(
      self,
      __bentoml_method: RunnerMethod[t.Any, P, R],
      *args: P.args,
      **kwargs: P.kwargs,
  ) -> AsyncGenerator[R, None]:
      generator = getattr(self._runnable, __bentoml_method.name)(
          *args, **kwargs
      )
      # This allows user to define both sync and async generator
      if inspect.isasyncgen(generator):
          return generator
      else:
          return iterate_in_threadpool(generator)
  
file_path: BentoML/grpc-client/bentoml/_internal/runner/runner_handle/local.py
imports: from __future__ import annotations
  import functools
  import inspect
  import typing
  from typing import TYPE_CHECKING
  from typing import AsyncGenerator
  import anyio
  from ..container import AutoContainer
  from ..container import Payload
  from ..utils import Params
  from ..utils import iterate_in_threadpool
  from .None import RunnerHandle
label_desc: Use image node_id 3 for calling the LocalRunnerRef obj's underlying member method code with example usage: obj.async_stream_method(__bentoml_method) and returns: generator, iterate_in_threadpool