Coverage for cli / input.py: 67%

9 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-29 02:55 +0800

1""" 

2用户输入模块 

3 

4负责 prompt_toolkit 键绑定和读取用户输入。 

5""" 

6from prompt_toolkit import PromptSession 

7from prompt_toolkit.key_binding import KeyBindings 

8 

9_bindings = KeyBindings() 

10 

11 

12@_bindings.add("escape", "enter") # Alt+Enter 或 Esc+Enter 换行 

13def _newline(event): 

14 event.current_buffer.insert_text("\n") 

15 

16 

17def get_input(session_id: str) -> str: 

18 """读取一行用户输入,Enter 提交,Alt+Enter 换行。""" 

19 prompt_session = PromptSession(key_bindings=_bindings) 

20 return prompt_session.prompt( 

21 f"[{session_id}] > ", 

22 multiline=False, 

23 )