code: def executable(cls, cmd):
      if cmd and not os.path.isabs(cmd):
          # always enforce absolute path
          cmd = shutil.which(cmd)
          if not cmd:
              raise WorkflowError(
                  f"Cannot set default shell {cmd} because it is not available in your PATH."
              )
      if ON_WINDOWS:
          if cmd is None:
              cls._process_prefix = ""
              cls._win_command_prefix = ""
          elif os.path.split(cmd)[-1].lower() in ("bash", "bash.exe"):
              if cmd == r"C:\Windows\System32\bash.exe":
                  raise WorkflowError(
                      "Cannot use WSL bash.exe on Windows. Ensure that you have "
                      "a usable bash.exe availble on your path."
                  )
              cls._process_prefix = "set -euo pipefail; "
              cls._win_command_prefix = "-c"
      elif os.path.split(cmd)[-1].lower() == "bash":
          cls._process_prefix = "set -euo pipefail; "
      cls._process_args["executable"] = cmd
  
imports: import _io
  import sys
  import os
  import subprocess
  import inspect
  import shutil
  import stat
  import tempfile
  import threading
  from snakemake.utils import format, argvquote, cmd_exe_quote
  from snakemake.common import ON_WINDOWS, RULEFUNC_CONTEXT_MARKER
  from snakemake.logging import logger
  from snakemake.deployment import singularity
  from snakemake.deployment.conda import Conda
  from snakemake.exceptions import WorkflowError
label_desc: Use image node_id 3 for calling the shell obj's underlying member method code with example usage: obj.executable(cls, cmd) without return types