llama-stack/llama_stack/distribution/utils
Sébastien Han 24fd06879e
refactor: simplify command execution and remove PTY handling (#1641)
# What does this PR do?

A PTY is unnecessary for interactive mode since `subprocess.run()`
already inherits the calling terminal’s stdin, stdout, and stderr,
allowing natural interaction. Using a PTY can introduce unwanted side
effects like buffering issues and inconsistent signal handling. Standard
input/output is sufficient for most interactive programs.

This commit simplifies the command execution by:

1. Removing PTY-based execution in favor of direct subprocess handling
2. Consolidating command execution into a single run_command function
3. Improving error handling with specific subprocess error types
4. Adding proper type hints and documentation
5. Maintaining Ctrl+C handling for graceful interruption

## Test Plan

```
llama stack run
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2025-03-17 15:03:14 -07:00
..
tests feat: Add back inference metrics and preserve context variables across asyncio boundary (#1552) 2025-03-12 12:01:03 -07:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
config_dirs.py chore: remove unused build dir (#1379) 2025-03-05 15:40:00 -08:00
context.py fix: fix build error in context.py (#1595) 2025-03-12 13:26:23 -07:00
dynamic.py Add an introspection "Api.inspect" API 2024-10-02 15:41:14 -07:00
exec.py refactor: simplify command execution and remove PTY handling (#1641) 2025-03-17 15:03:14 -07:00
image_types.py refactor: ImageType to LlamaStackImageType (#1500) 2025-03-10 17:12:53 -04:00
model_utils.py Ensure model_local_dir does not mangle "C:\" on Windows 2024-11-24 14:18:59 -08:00
prompt_for_config.py build: format codebase imports using ruff linter (#1028) 2025-02-13 10:06:21 -08:00
serialize.py API Updates (#73) 2024-09-17 19:51:35 -07:00