prompt-toolkit / python-prompt-toolkit

Library for building powerful interactive command line applications in Python
https://python-prompt-toolkit.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
9.28k stars 715 forks source link

Implementation of timed-out user input #1873

Closed brunolnetto closed 2 weeks ago

brunolnetto commented 4 months ago

I tried implementing (I prototyped with Gemini) a code snippet for timeout user input. Prompt complains ModuleNotFoundError: No module named 'prompt_toolkit.timeout'. Does it exist?

from prompt_toolkit import prompt
from prompt_toolkit.timeout import Timeout  # For timeout handling

def get_input_with_timeout(prompt_message: str, timeout: float):
  """Gets user input with a timeout using prompt_toolkit (potential interrupt).

  Args:
      prompt_message: The message to display for user input.
      timeout: The timeout duration in seconds.

  Returns:
      The user input as a string or None if timed out.
  """
  try:
    return prompt(prompt_message, timeout=timeout)
  except Timeout:
    return None
  except KeyboardInterrupt:
    # Handle keyboard interrupt (optional)
    pass

# Example usage (assuming prompt_toolkit is installed)
timeout_value = 5  # Set timeout in seconds
user_input = get_input_with_timeout("Enter something within 5 seconds: ", timeout_value)

if user_input:
  print(f"You entered: {user_input}")
else:
  print("Timeout reached. No input received.")
joouha commented 4 months ago

No. It appears your LLM has been "hallucinating".

brunolnetto commented 4 months ago

How do you recommend to implement such feature?