code: def __setattr__(self, attr_name: str, value: t.Any):
      if attr_name in (
          "SUPPORTED_RESOURCES",
          "SUPPORTS_CPU_MULTI_THREADING",
      ):
          # TODO: add link to custom runner documentation
          raise BentoMLException(
              f"{attr_name} should not be set at runtime; the change will not be reflected in the scheduling strategy. Instead, create separate Runnables with different supported resource configurations."
          )
  
      super().__setattr__(attr_name, value)
  
imports: from __future__ import annotations
  import inspect
  import logging
  import typing
  from typing import TYPE_CHECKING
  from typing import overload
  import attr
  from ...exceptions import BentoMLException
  from ..types import LazyType
label_desc: Use image node_id 1 for calling the Runnable obj's underlying member method code with example usage: obj.__setattr__(attr_name, value) without return types