code: def prompt(
      self,
      text: str,
      choices: Optional[Iterable[str]] = None,
      password: bool = False,
  ) -> Optional[str]:
      while True:
          try:
              response = self.rich_console.input(
                  text + " ", markup=False, password=password
              )
          except EOFError:
              return None
  
          answer = response.lower()
          if not choices:
              return answer
  
          if answer in choices:
              return answer
  
          self.write(
              f"Your response must be one of: {choices}. Please try again."
          )
  
imports: from contextlib import contextmanager, nullcontext
  from typing import TYPE_CHECKING, Any, Callable, Dict, Iterable, Iterator, Optional, Sequence, TextIO, Type, Union
  import colorama
  from dvc.utils.objects import cached_property
label_desc: Use image node_id 13 for calling the Console obj's underlying member method code with example usage: obj.prompt(text, choices, password) and returns: answer, answer, None