code: def _check_session(self, session: SessionType, action: str):
      if session is None:
          if isinstance(self, tuple):
              key = self[0].key
          else:
              key = self.key
          raise ValueError(
              f"Tileable object {key} must be executed first before {action}"
          )
  
imports: import asyncio
  import atexit
  import concurrent.futures
  import queue
  import threading
  from typing import List
  from weakref import WeakKeyDictionary, ref
  from ...lib.aio import get_isolation
  from ...typing import SessionType, TileableType
  from ..mode import enter_mode
label_desc: Use image node_id 2 for calling the _ExecutableMixin obj's underlying member method code with example usage: obj._check_session(session, action) without return types