code: def colorize(
      string: str,
      color: str,
      bold: bool = False,
      highlight: bool = False,
  ) -> str:
      """Returns string surrounded by appropriate terminal colour codes to print colourised text.
  
      Args:
          string: The message to colourise
          color: Literal values are gray, red, green, yellow, blue, magenta, cyan, white, crimson
          bold: If to bold the string
          highlight: If to highlight the string
  
      Returns:
          Colourised string
      """
      attr = []
      num = color2num[color]
      if highlight:
          num += 10
      attr.append(str(num))
      if bold:
          attr.append("1")
      attrs = ";".join(attr)
      return f"\x1b[{attrs}m{string}\x1b[0m"
  
label_desc: Use image node_id 1 for calling a global function with example usage: colorize(string, color, bold, highlight) and returns: str, attrs, str, string, str