Я пишу приложение на Python, которое предназначено для интерактивного использования внутри конвейеров Unix.Приложение должно запустить пользовательский интерфейс терминала на основе curses и, основываясь на взаимодействии с пользователем, записывать в стандартный вывод только перед выходом.
Типичное использование - типичный конвейер:
foo_command | my_application | sink_app
Проблема, с которой я сталкиваюсь, состоит в том, что библиотека python curses отправляет все виды вещей на стандартный вывод во время работы приложения.Кроме того, sink_app
начинает выполняться, когда my_application
работает.
- Как предотвратить попадание проклятий в стандартный вывод?
- Как мне буферизовать вывод и управление, когда я хочусбросить его?
- Можно ли контролировать, когда
sink_app
начинает выполняться и когда он прекращает принимать ввод?
Из того, что я собираю, мне нужно сохранить ссылку на стандартный выводдескриптор файла, чтобы я мог позже написать в него.И передать другой fd (который?) Ncurses.Предположительно, через newterm (), но это не доступно при связывании проклятий Python.