mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-25 21:36:52 +08:00
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import argparse
|
|
import sys
|
|
|
|
|
|
def read_input(cli_multiline_input: bool = False) -> str:
|
|
"""Read input from user based on config settings."""
|
|
if cli_multiline_input:
|
|
print('Enter your message (enter "/exit" on a new line to finish):')
|
|
lines = []
|
|
while True:
|
|
line = input('>> ').rstrip()
|
|
if line == '/exit': # finish input
|
|
break
|
|
lines.append(line)
|
|
return '\n'.join(lines)
|
|
else:
|
|
return input('>> ').rstrip()
|
|
|
|
|
|
def read_task_from_file(file_path: str) -> str:
|
|
"""Read task from the specified file."""
|
|
with open(file_path, 'r', encoding='utf-8') as file:
|
|
return file.read()
|
|
|
|
|
|
def read_task(args: argparse.Namespace, cli_multiline_input: bool) -> str:
|
|
"""Read the task from the CLI args, file, or stdin."""
|
|
# Determine the task
|
|
task_str = ''
|
|
if args.file:
|
|
task_str = read_task_from_file(args.file)
|
|
elif args.task:
|
|
task_str = args.task
|
|
elif not sys.stdin.isatty():
|
|
task_str = read_input(cli_multiline_input)
|
|
|
|
return task_str
|