code: def _set_handle(
      self,
      handle_class: type[RunnerHandle],
      *args: t.Any,
      **kwargs: t.Any,
  ) -> None:
      if not isinstance(self._runner_handle, _DummyRunnerHandle):
          raise _StateException("Runner already initialized")
  
      runner_handle = handle_class(self, *args, **kwargs)
      _object_setattr(self, "_runner_handle", runner_handle)
  
imports: from __future__ import annotations
  import logging
  import typing
  from functools import cached_property
  import attr
  from simple_di import Provide
  from simple_di import inject
  from ._internal.configuration import get_debug_mode
  from ._internal.configuration.containers import BentoMLContainer
  from ._internal.runner.runnable import RunnableMethodConfig
  from ._internal.runner.runner import AbstractRunner
  from ._internal.runner.runner import RunnerMethod
  from ._internal.runner.runner import object_setattr
  from ._internal.runner.runner_handle import DummyRunnerHandle
  from ._internal.runner.runner_handle.remote import TRITON_EXC_MSG
  from ._internal.runner.runner_handle.remote import handle_triton_exception
  from ._internal.utils import LazyLoader
  from .exceptions import StateException
label_desc: Use image node_id 4 for calling the _TritonRunner obj's underlying member method code with example usage: obj._set_handle(handle_class) without return types