Stage-script — это пакет, который позволяет разделять автоматизационные скрипты на этапы.
#Python #Automation #Infrastructure #StagedScript #DevOps #Scripting #Tech #Coding #Programming #TechTips
https://github.com/sandialabs/staged-script
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - sandialabs/staged-script: A Python package enabling the development of robust automation scripts that are subdivided into…
A Python package enabling the development of robust automation scripts that are subdivided into stages. - sandialabs/staged-script
Pexpect — это Python-библиотека, которая позволяет управлять внешними программами, как будто вы сами с ними взаимодействуете через терминал.
#Pexpect #Python #Automation #CLI #DevOps #SSH #Expect #OpenSource #Scripting #Terminal #Testing #Unix #PythonTools
https://github.com/pexpect/pexpect
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pexpect/pexpect: A Python module for controlling interactive programs in a pseudo-terminal
A Python module for controlling interactive programs in a pseudo-terminal - pexpect/pexpect
1 4⚡3🔥3
Bashautom - это легковесная Python-библиотека для управления персистентными (долгоживущими) сессиями Bash, сохраняющая контекст и состояние шелла между последовательными командами.
При использовании стандартного
subprocess.run() на каждый вызов порождается абсолютно новый изолированный процесс: изменения рабочей директории (cd), экспортированные переменные (export) и активированные виртуальные окружения (source .env) моментально сбрасываются. Библиотека pexpect решает проблему персистентности, но завязана на хрупкий интерактивный парсинг шелл-промптов.bashautom держит один живой процесс /bin/bash в фоновом режиме и возвращает чистый структурированный результат по каждой команде без необходимости писать регулярные выражения и шаблоны expect.cwd) и результаты выполнения скриптов через source сохраняются между вызовами метода .execute().CommandResult: Каждая команда возвращает подробный статус: stdout, stderr, exit_code, флаг success, флаг timed_out и точное время выполнения в секундах (duration).timeout=N), она принудительно прерывается, но сама bash-сессия остается живой и готовой принимать следующие команды.stream_callback) для чтения stdout/stderr по мере генерации (полезно для логов сборки и долгих циклов).SessionManager): Удобное создание, координация и параллельное управление несколькими именованными bash-сессиями в разных директориях.set_env(), get_env(), get_cwd(), проверку PID и флага alive.from bashautom import Session
with Session() as s:
# Состояние сохраняется от шага к шагу:
s.execute("cd /opt/myproject")
s.execute("source .env")
s.execute("export BUILD_ID=42")
# Выполнение с контролем времени
result = s.execute("make build", timeout=120)
if result.success:
print(f"Сборка завершена за {result.duration:.2f} сек")
print(result.stdout)
else:
print(f"Ошибка (код {result.exit_code}):", result.stderr)
Потоковый вывод (Streaming):
from bashautom import Session
from bashautom.session import StreamEvent
def on_output(event: StreamEvent):
print(f"[{event.stream}] {event.data.strip()}")
with Session() as s:
s.execute("for i in 1 2 3; do echo $i; sleep 0.5; done", stream_callback=on_output)
pip install bashautom
#Bashautom #Python #Bash #DevOps #Automation #Linux #MacOS #CLI #Scripting #OpenSource #DevTools
https://github.com/huskago/bashautom
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - huskago/bashautom: Persistent bash sessions for Python - stateful shell automation with timeouts, streaming, and multi…
Persistent bash sessions for Python - stateful shell automation with timeouts, streaming, and multi-session support. - huskago/bashautom
👍3 1