code: def print_buttons(
      message: Dict[Text, Any],
      is_latest_message: bool = False,
      color: Text = rasa.shared.utils.io.bcolors.OKBLUE,
  ) -> Optional[questionary.Question]:
      """Create CLI buttons from message data."""
      if is_latest_message:
          choices = cli_utils.button_choices_from_message_data(
              message, allow_free_text_input=True
          )
          question = questionary.select(
              message.get("text"),
              choices,
              style=Style(
                  [
                      ("qmark", "#6d91d3"),
                      ("", "#6d91d3"),
                      ("answer", "#b373d6"),
                  ]
              ),
          )
          return question
      else:
          rasa.shared.utils.cli.print_color("Buttons:", color=color)
          for idx, button in enumerate(message.get("buttons")):
              rasa.shared.utils.cli.print_color(
                  cli_utils.button_to_string(button, idx), color=color
              )
          return None
  
imports: import asyncio
  import json
  import logging
  import os
  from typing import Any, AsyncGenerator, Dict, List, Optional, Text, overload
  import aiohttp
  import questionary
  from aiohttp import ClientTimeout
  from prompt_toolkit.styles import Style
  import rasa.shared.utils.cli
  import rasa.shared.utils.io
  from rasa.cli import utils
  from rasa.core import utils
  from rasa.core.channels.rest import RestInput
  from rasa.core.constants import DEFAULT_SERVER_URL, DEFAULT_STREAM_READING_TIMEOUT
  from rasa.shared.constants import INTENT_MESSAGE_PREFIX
  from rasa.shared.utils.io import DEFAULT_ENCODING
label_desc: Use image node_id 1 for calling a global function with example usage: print_buttons(message, is_latest_message, color) and returns: question, None