code: def key_split(s):
      """
      >>> key_split('x')
      'x'
      >>> key_split('x-1')
      'x'
      >>> key_split('x-1-2-3')
      'x'
      >>> key_split(('x-2', 1))
      'x'
      >>> key_split("('x-2', 1)")
      'x'
      >>> key_split('hello-world-1')
      'hello-world'
      >>> key_split(b'hello-world-1')
      'hello-world'
      >>> key_split('ae05086432ca935f6eba409a8ecd4896')
      'data'
      >>> key_split('<module.submodule.myclass object at 0xdaf372')
      'myclass'
      >>> key_split(None)
      'Other'
      >>> key_split('x-abcdefab')  # ignores hex
      'x'
      >>> key_split('_(x)')  # strips unpleasant characters
      'x'
      """
      if isinstance(s, bytes):
          s = s.decode()
      if type(s) is tuple:
          s = s[0]
      try:
          words = s.split("-")
          result = (
              words[0].strip("_'()\"")
              if not words[0][0].isalpha()
              else words[0]
          )
          for word in words[1:]:
              if word.isalpha() and not (
                  len(word) == 8 and hex_pattern.match(word) is not None
              ):
                  result += "-" + word
              else:
                  break
          if len(result) == 32 and re.match(r"[a-f0-9]{32}", result):
              return "data"
          if result[0] == "<":
              result = result.strip("<>").split()[0].split(".")[-1]
          return result
      except Exception:
          return "Other"
  
file_path: lightning-flash/src/flash/core/serve/dag/utils.py
imports: import functools
  import re
  from operator import methodcaller
  from flash.core.utilities.imports import _TOPIC_SERVE_AVAILABLE
label_desc: Use image node_id 2 for calling a global function with example usage: key_split(s) and returns: result, str, str