PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Staged-script.

Stage-script
— это пакет, который позволяет разделять автоматизационные скрипты на этапы.

🔘Python - идеальный язык для определенных видов автоматизации инфраструктуры. Автоматизация действий пользователя часто включает выполнение серии этапов.

🔘Пользователь может захотеть выполнить все этапы подряд или только их часть, и в зависимости от ситуации, некоторые этапы могут потребовать повторного выполнения.

🔘После завершения скрипта было бы идеально, если бы он мог точно сообщить пользователю, что именно было выполнено, для облегчения воспроизведения.

❗Staged-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
5🔥3👍1
📱Diagrams.

Diagrams — это инструмент, который позволяет создавать диаграммы архитектуры облачных систем с помощью Python-кода.

✅Он был создан для быстрого прототипирования новой архитектуры систем без использования инструментов для дизайна. Также можно описывать или визуализировать существующую архитектуру системы.

🔧Diagrams поддерживает основные облачные провайдеры, включая AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud и другие. Также доступны On-Premise узлы, SaaS и основные фреймворки и языки программирования.

📌Где используется Diagrams?

🔘Apache Airflow — самый популярный оркестратор рабочих процессов данных. Airflow использует Diagrams для генерации архитектурных диаграмм в своей документации.

🔘Cloudiscovery помогает анализировать ресурсы в вашем облаке (AWS/GCP/Azure/Alibaba/IBM). Он позволяет создавать диаграмму существующей облачной инфраструктуры на основе библиотеки Diagrams.

🔘Airflow Diagrams — плагин для Airflow, который позволяет легко визуализировать ваши DAGs на уровне сервисов от таких провайдеров, как AWS, GCP, Azure и другие, с помощью диаграмм.

#Diagrams #CloudArchitecture #Python #AWS #Azure #GCP #Kubernetes #DevOps #SaaS #Программирование #АрхитектураСистем #ИТ #Airflow #Cloudiscovery #DAGs

📱Ссылка на репозиторий:
https://github.com/mingrammer/diagrams
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥22⚡1🤔1
📱TinyStatus.

TinyStatus — это простой и настраиваемый генератор статус-страниц, который позволяет отслеживать статус различных сервисов и отображать их на чистой, адаптивной веб-странице.

📊Особенности:

🔘Мониторинг HTTP-эндпоинтов, пинг хостов и проверка открытых портов.

🔘Адаптивный дизайн для страниц статуса и истории.

🔘Настраиваемые проверки сервисов через YAML-конфигурацию
Отслеживание истории инцидентов.

🔘Автоматические обновления статуса с настраиваемыми интервалами.

🔘Поддержка светлой и темной тем.

🔘Группировка сервисов.

#TinyStatus #СтатусСервисы #Мониторинг #Разработка #DevOps #Инциденты #ВебИнструменты #Технологии

📱Ссылка на репозиторий:
https://github.com/harsxv/tinystatus
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥4👍2
📱Pex.

Pex — это библиотека для создания .pex файлов, которые представляют собой исполняемые Python окружения, аналогичные virtualenv, но более удобные.

💡 .pex файлы могут включать несколько платформенных Python-дистрибутивов, что делает их переносимыми между Linux и macOS.

✅Pex отлично подходит для быстрого создания, тестирования и развертывания Python-приложений!

#Python #Pex #DevOps #Automation #PythonDevelopment #VirtualEnv #Packaging

📱Ссылка на репозиторий:
https://github.com/pex-tool/pex
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥2
📱Systemd Pilot.

Systemd Pilot
— это удобное настольное приложение для управления сервисами systemd на GNU/Linux. Это мощный графический интерфейс для systemd или systemctl, упрощающий управление системными и пользовательскими сервисами.

🔹Возможности:

🔘Список системных и пользовательских сервисов.

🔘Быстрое развёртывание сервисов с использованием шаблонов.

🔘Фильтрация по статусу выполнения.

🔘Старт, остановка, перезапуск сервисов, просмотр статуса.

🔘Создание конфигураций override для любых unit-файлов через кнопку "Edit".

🔘Простой поиск: начните вводить, и приложение моментально найдёт нужные сервисы.

🔘Лёгкость и производительность: всего один Python-скрипт.

🔘Доступно как deb, rpm, flatpak и AppImage.

🔘Полная интеграция с GNOME (libadwaita).

✅Systemd Pilot — лёгкий и эффективный инструмент для администраторов и пользователей Linux!

#Linux #Systemd #DevOps #Python #OpenSource

📱Ссылка на репозиторий:
https://github.com/mfat/systemd-pilot
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍2
📱Pyftpdlib.

pyftpdlib
— асинхронная библиотека на Python для создания быстрых, масштабируемых и совместимых с RFC-959 FTP-серверов.

🔹Основные возможности:

🔘Полностью на Python, без зависимостей.

🔘Поддержка FTPS, IPv6, Unicode, виртуальных пользователей.

🔘Асинхронность через epoll / kqueue / select.

🔘Поддержка sendfile(2) для высокой скорости загрузок (Linux).

🔘Альтернативный режим: многопоточность или многопроцессность.

🔘Превосходная производительность: быстрее многих FTP-серверов на C.

🔘Удобный CLI и API.

#Python #pyftpdlib #FTP #PythonNetwork #AsyncIO #PythonDev #FTPLibrary #PythonTools #OpenSource #DevOps #PythonServer #Программирование

📱Ссылка на репозиторий:
https://github.com/giampaolo/pyftpdlib/
Please open Telegram to view this post
VIEW IN TELEGRAM
24👍1
📱Testcontainers-python.

testcontainers-python
— удобная библиотека для использования Docker-контейнеров при функциональном и интеграционном тестировании на Python.

🔹Начало работы:
from testcontainers.postgres import PostgresContainer
import sqlalchemy

with PostgresContainer("postgres:16") as postgres:
engine = sqlalchemy.create_engine(postgres.get_connection_url())
with engine.begin() as connection:
result = connection.execute(sqlalchemy.text("select version()"))
version, = result.fetchone()
print(version) # PostgreSQL 16...


Этот пример поднимает базу данных Postgres в Docker-контейнере. Метод get_connection_url() возвращает URL, совместимый с SQLAlchemy, чтобы подключиться к базе и получить версию.

#Python #Docker #Testcontainers #Тестирование #PostgreSQL #ИнтеграционныеТесты #DevOps #Backend #Разработка

📱Ссылка на репозиторий:
https://github.com/testcontainers/testcontainers-python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1355
📱Pexpect.

Pexpect — это Python-библиотека, которая позволяет управлять внешними программами, как будто вы сами с ними взаимодействуете через терминал.

🔹Что умеет:

🔘Автоматизация ssh, ftp, telnet, passwd и других интерактивных CLI-программ.

🔘Тестирование софта, скрипты установки, деплой.

🔘Ждёт нужные шаблоны в выводе программ и реагирует на них.

🔘Работает как классический Expect, но написан полностью на Python.

🔘Поддержка Unix-систем (через pty), частичная поддержка Windows.

✅Отличный инструмент для автоматизации того, что раньше делалось руками в терминале.

#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
14⚡3🔥3
📱Desto.

Desto
— это удобная веб-панель для запуска и управления скриптами в фоновом режиме (внутри tmux).

✅Запускай .sh и .py файлы, смотри логи, следи за загрузкой системы и управляй сессиями — всё в одном интерфейсе.

🔹Ключевые возможности:

🔘В один клик: запуск, мониторинг и остановка tmux-сессий.

🔘Поддержка Bash и Python.

🔘Статистика в реальном времени (CPU, память, диск).

🔘Редактирование скриптов прямо в браузере.

🔘Скрипты можно запускать последовательно в цепочке.

🔘Планировщик: настрой запуск скриптов по времени.

🔘Прямой просмотр логов сессий.

🔘Постоянное хранилище для скриптов и логов.

🔘CLI-интерфейс для терминала.

#Desto #DevOps #Python #Bash #Tmux #CLITools #WebDashboard #Automation #ScriptRunner #OpenSource #LinuxTools #SystemMonitoring #TaskScheduler #LiveLogs #TerminalTools

📱Ссылка на репозиторий:
https://github.com/kalfasyan/desto
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥3⚡2👍2
📱Multiplex.

Multiplex — мощный CLI-мультиплексор и Python API для параллельного запуска процессов.

✅Если вам нужно одновременно запустить несколько процессов (например, веб-сервер, очередь задач и базу данных) и грамотно управлять их завершением — используйте Multiplex.

❓Что умеет Multiplex:

🔘Запускает несколько команд параллельно.

🔘Позволяет задавать задержки и зависимости между процессами.

🔘Грациозно завершает все дочерние процессы.

🔘Объединяет stdout/stderr в удобный для парсинга вывод.

🔘Имеет лаконичный синтаксис и полноценный Python API.

🔹Пример:
Запустить сервер, подождать 2 сек, затем выполнить бенчмарк и завершить всё:
multiplex "SERVER|silent=python3 -m http.server" "+2s|end=ab -n1000 http://localhost:8000/"


#Python #DevTools #CLI #Async #Multiprocessing #Automation #DevOps #Multiplex #OpenSource #Параллелизм #Скрипты #PythonTools #Разработка

📱Ссылка на репозиторий:
https://github.com/sebastien/multiplex
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍3⚡2🔥1
📱Raptor.

Raptor— новый open-source инструмент для автономного анализа безопасности кода.

Raptor объединяет классические security-инструменты со смарт-автоматизацией: понимает ваш код, демонстрирует возможность эксплуатации уязвимостей и даже предлагает патчи.

❓Что делает Raptor уникальным:

🔘Агентный анализ + традиционные security-инструменты.

🔘Полностью модульная архитектура.

🔘Поддержка расширений (пакеты Raptor).

🔘Автоматический запуск Semgrep, CodeQL, AFL++, rr, Playwright и других инструментов.

🔘Работает через Claude Code или Python CLI.

#security #infosec #appsec #opensource #forensics #codeql #semgrep #fuzzing #devops #python #claudecode #raptor

📱Ссылка на репозиторий:
https://github.com/gadievron/raptor
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥2
📱Svc-infra.

Svc-infra — это библиотека для FastAPI, которая упаковывает всю типовую backend-инфраструктуру (авторизацию, биллинг, фоновые задачи, вебхуки, кеширование) в готовые к использованию компоненты.

✅Вместо того чтобы каждый раз писать один и тот же код для аутентификации, работы с БД и очередями задач, вы просто импортируете нужные функции и фокусируетесь на бизнес-логике своего FastAPI-приложения.

❓Что внутри:

🔘Авторизация: JWT, сессии, OAuth/OIDC, MFA, API ключи.

🔘 Биллинг: Учет использования, подписки, счета, интеграция Stripe.

🔘БД: PostgreSQL + MongoDB, миграции, inbox/outbox паттерн.

🔘Фоновые задачи: Очереди, планировщик, повторы, DLQ.

🔘Вебхуки: Подписки, HMAC-подпись, автоповторы доставки.

🔘Кеш: Redis/память, декораторы, namespace'ы.

🔘Observability: Prometheus, Grafana дашборды, OTEL.

🔘Хранилище: S3, локальное, in-memory.

🔘Multi-tenancy: Изоляция тенантов.

🔘Rate Limiting: Ограничение по пользователю/эндпоинту.

#Python #FastAPI #Backend #API #WebDev #DevOps #SaaS #Microservices #Infrastructure #OpenSource #Coding #Programming #SoftwareDevelopment #CloudNative #ProductionReady

📱Ссылка на репозиторий:
https://github.com/nfraxlab/svc-infra
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥1
📱Pytest-fly.

Pytest-fly — это мощный инструмент для разработки, отладки и запуска сложных тестовых наборов на pytest. GUI с 6 вкладками в реальном времени мониторит выполнение тестов, параллелизм и ресурсы.

🔹6 вкладок GUI для полного контроля:

🔘Run — запуск/стоп, параллелизм, прогресс (%, время, coverage),
системные метрики (CPU/RAM/IO), failed тесты, live output.

🔘Graph — прогресс по модулям (горизонтальные бары).

🔘Table — статус тестов + CPU/RAM/coverage per test.

🔘Coverage — coverage over time (постоянно накапливается).

🔘Config — ordering, процессы, thresholds, expert settings.

🔘About — системная инфа.

🔻Ключевые фичи:

🔘Параллелизм по модулям (функции внутри модуля — serial).

🔘3 режима: Restart/Resume/Check (Check = resume если код не менялся).

🔘@pytest.mark.singleton — эксклюзивное выполнение.

🔘Resource monitoring per процесс (peak CPU/RAM).

🔘Smart ordering: failed → never-run → slow → coverage-efficient.

🔘Graceful stop/resume — останавливаешь и продолжаешь с места.

🔧Установка за секунду:

pip install pytest-fly
pytest --fly # или pytest-fly


#pytest #pytestfly #PythonTesting #TestAutomation #TDD #CI_CD #DevOps #PythonTools

📱Ссылка на репозиторий:
https://github.com/jamesabel/pytest-fly
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡2👍22
📱Kubex.

Kubex — это
современный и невероятно быстрый клиент Kubernetes для Python, вдохновленный rust-библиотекой kube.rs.

Если вы писали K8s-операторы на Python, то наверняка сталкивались с медлительностью и прожорливостью стандартного kubernetes-asyncio.

Kubex меняет правила игры, предоставляя инструмент по-настоящему энтерпрайз-уровня!

🔹Главные фишки библиотеки:

🔘Космическая производительность: Работает до 40 раз быстрее (например, при получении списка из 500 подов), потребляет на 47% меньше памяти и делает в 5 раз меньше аллокаций. Давление на Garbage Collector минимально!

🔘Pydantic v2 под капотом: Забудьте про dict[str, Any]. Все ресурсы K8s, поля spec и status строго типизированы. IDE сама подскажет нужные параметры, а mypy защитит от ошибок еще до запуска.

🔘Мультиверсионность: Модели генерируются из OpenAPI (поддерживаются K8s с 1.32 по 1.37). Вы можете использовать модели разных версий одновременно, если управляете зоопарком кластеров.

🔘Свобода от фреймворков: Работает с asyncio (aiohttp/httpx) и trio (httpx). Никакого вендор-лока.

🔘Интерактивность: Экспериментальная, но мощная поддержка WebSocket. Выполнение команд (exec), подключение к потокам (attach) и проброс портов (portforward) работают прямо из кода, как в kubectl.

❓Как это выглядит в коде:
from kubex.api import Api
from kubex.client import create_client
from kubex.k8s.v1_35.core.v1.pod import Pod

async with await create_client() as client:
api: Api[Pod] = Api(Pod, client=client, namespace="default")
pod = await api.get("my-pod")
# pod.spec и pod.status полностью типизированы!


#Kubernetes #Python #DevOps #Pydantic #OpenSource #K8s #Asyncio #Backend

📱Ссылка на репозиторий:
https://github.com/codemageddon/kubex
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥5👍2⚡1
📱Feloxi.

Feloxi - это
мощная self-hosted платформа для мониторинга очередей задач Python, в первую очередь — Celery. Инструмент предоставляет живые дашборды, поиск по истории задач и гибкую систему алертов.

Вам не нужно устанавливать никаких дополнительных агентов или менять код приложения! Feloxi просто подключается к вашему брокеру (Redis или RabbitMQ), читает стандартные события, которые и так генерирует Celery, и бережно сохраняет их в ClickHouse.

🔹Главные возможности:

🔘Продвинутый поиск: Ищите таски по ID, названию, аргументам (args/kwargs), результатам и даже по тексту ошибок. Смотрите таймлайны, ретраи и полные трейсбеки.

🔘Health-мониторинг воркеров: Следите за загрузкой CPU, памятью, размером пула, активными задачами и пропусками heartbeat.

🔘Визуализация цепочек: Сложные воркфлоу (chains, groups, chords) автоматически отрисовываются в виде интерактивных DAG (направленных ациклических графов). Если пайплайн упадет, вы сразу увидите, на каком именно шаге это произошло.

🔘Контроль периодических задач (Celery Beat): Вы всегда будете знать расписание задач, время последнего запуска и не пропустили ли они свой "бит".

🔘Умные алерты: Доступно 10 типов условий (например, падение скорости обработки, медленные таски, оффлайн воркер, аномалии в глубине очереди). Уведомления можно отправлять в Slack, PagerDuty, на email или через Webhook.

🔘Prometheus из коробки: Метрики доступны по эндпоинту GET /metrics для легкой интеграции с вашей инфраструктурой мониторинга.

❓Как подключить (нужно всего 3 шага):

Добавьте в celeryconfig.py:
worker_send_task_events = True
task_send_sent_event = True
task_track_started = True


Перезапустите воркеры с флагом --events.

Зайдите в UI Feloxi, нажмите Add Broker и введите URL вашего Redis/RabbitMQ. Всё!

🚀Быстрый старт (через Docker Compose):

git clone https://github.com/thesaadmirza/feloxi.git
cd feloxi
cp .env.example .env
docker compose up -d

Стек: Rust (Axum), Next.js 15, PostgreSQL, ClickHouse и Redis. Поддерживается установка в Kubernetes через Helm-чарты.

#Python #Celery #DevOps #Monitoring #RabbitMQ #Redis #Rust #NextJS #OpenSource #Backend

📱Ссылка на репозиторий:
https://github.com/thesaadmirza/feloxi
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍42🔥1
📱Remote CMD.

Remote CMD -
это легковесная Python-утилита (CLI) и API для управления серверами по SSH. Без лишнего оверхеда, сложных конфигураций Ansible или громоздких bash-циклов.
Инструмент идеально подходит для ситуаций, когда вам нужно быстро выполнить команду на нескольких серверах, раскидать файлы или автоматизировать деплой, используя удобный синтаксис прямо "из коробки".

🔹Главные возможности:

🔘Управление инвентарем и тегами: Добавляйте серверы в базу (JSON/YAML) и группируйте их по тегам (например, production, web, db).

🔘Массовое выполнение (Batch Ops): Запускайте команды сразу на группе серверов. Например, узнать свободное место на всех продакшен-машинах: remote-cmd batch-run -t production "df -h /".

🔘Передача файлов: Встроенная поддержка загрузки и скачивания файлов по SFTP.

🔘Python API: Инструмент можно использовать как библиотеку внутри ваших собственных Python-скриптов для сложной автоматизации (поддерживает выполнение sudo команд с паролем).

🔘Нулевая настройка: Никаких ansible.cfg или конфигураций SSH-агента. Установили через pip — и можно работать.

🚀Быстрый старт:

# Установка
pip install remote_cmd_manager

# Добавление сервера
remote-cmd host add web-01 192.168.1.10 ubuntu --key ~/.ssh/id_rsa

# Выполнение команды на одном сервере
remote-cmd run web-01 "uptime"


✅Если Ansible для ваших текущих задач — это "стрельба из пушки по воробьям", а голый SSH уже не справляется с количеством машин, Remote CMD станет отличным балансом. В планах разработчиков — добавление асинхронного выполнения команд для еще большей скорости.

#Python #SSH #DevOps #SysAdmin #CLI #Automation #OpenSource #DevTools #Администрирование

📱Ссылка на репозиторий:
https://github.com/Vae-Scrooge/remote-cmd
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍22
📱Tia.

Tia -
это инструмент анализа влияния тестов (Test Impact Analysis) для pytest, который позволяет запускать только те тесты, на которые действительно повлияли ваши изменения в коде.

Зачем тратить драгоценное время CI-пайплайнов на прогон сотен тестов, которые физически не могли сломаться от вашей правки?

Tia
один раз собирает карту покрытия, а затем с помощью git diff вычисляет и запускает строго минимальный набор тестов. Эту же концепцию оптимизации используют внутри себя такие гиганты, как Google и Meta.

🔹Честность и точность на реальных данных:

Главный грех подобных утилит — случайно пропустить тест, который на самом деле должен был упасть. Разработчики tia подошли к вопросу жестко:

🔘Никаких красивых сказок: На связанных и плотных проектах (как Flask) утилита безопасно пропускает около 21% тестов. А вот на хорошо модулированных библиотеках (как boltons) реальный показатель пропуска достигает 96%!

🔘Умный фильтр «косметики»: Если коммит содержит только правку опечаток в комментариях, форматирование через black или добавление докстрингов, tia поймет через сравнение AST-деревьев, что рантайм-код не изменился, и пропустит 99%+ тестов.

🔘Игнорирование «мертвых» тайп-хинтов: Правки внутри блоков if TYPE_CHECKING: не запускают тесты зря. Но если вы измените тип поля в Pydantic или dataclass (что влияет на логику работы), утилита это честно отловит.

🛠Как это работает?

🔘tia record — запускает полную кодовую базу и строит карту на уровне конкретных методов и функций {тест -> {файл -> функции}}, сохраняя её в .tia/map.json. Благодаря системным аудит-хукам утилита запоминает даже не-Python файлы (фикстуры, шаблоны, конфиги), которые читал тест.

🔘tia run — анализирует текущий git diff, сопоставляет измененные строки с функциями и на основе 4 правил (попадание в функцию, изменение модуля, дата-зависимость и появление нового теста) отправляет в pytest только целевой набор.

🔻Готовность к CI и Облаку:

Карту тестов, собранную на базовой ветке, можно легко передавать в задачи пул-реквестов. tia поддерживает работу с удаленными хранилищами из коробки:

🔘Собственный легковесный HTTP-сервер (tia serve) без внешних зависимостей.

🔘Ленивая загрузка SDK для нативных облачных бакетов AWS S3 (s3://) и Google Cloud Storage (gs://).

🔘Автоматическая генерация красивых Markdown-отчетов для GitHub Actions ($GITHUB_STEP_SUMMARY) с детальной таблицей: что изменилось и почему были выбраны именно эти тесты.

🚀Быстрый старт:

pip install -e .

tia record # Строим карту (запуск из корня репозитория)
tia run # Запускаем только затронутые тесты
tia run --since main # Сравниваем изменения относительно ветки main


#Python #Pytest #Testing #QA #Automation #CI #CD #DevOps #Optimization #OpenSource

📱Ссылка на репозиторий:
https://github.com/breadMSA/pytest-tia
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22👍1
📱Centaur.

Centaur
- это self-hosted платформа для командной работы с ИИ-агентами прямо через интерфейс Slack или REST API.

Вместо того чтобы каждый инженер настраивал персональных ботов и локальные скрипты на своей машине, Centaur предоставляет единого общего ассистента: вы тегаете @centaur в треде Slack, бот выделяет изолированную среду, запускает задачи, использует внутренние инструменты компании и возвращает готовый ответ в переписку.

🔹Ключевые возможности:

🔘Интеграция со Slack «из коробки»: Общение происходит прямо в тредах — бот публикует промежуточный прогресс выполнения и финальный результат.

🔘Изолированные песочницы Kubernetes: Каждая сессия запускается в отдельном контейнере (для локальной работы достаточно легковесного k3s) с доступом к терминалу, Git, Python, Node.js, Bun и рабочему пространству.

🔘Поддержка любых агентских CLI (BYOH): Внутри песочницы можно запускать такие среды и агентские движки, как Claude Code, Codex, Amp или собственные скрипты.

🔘Безопасная работа с секретами: Благодаря специальному сервису iron-proxy, агент никогда не получает «сырые» API-ключи в переменные окружения. Внутри песочницы используются токены-заглушки, а реальные учетные данные из 1Password подставляются на лету только при исходящих запросах к доверенным адресам.

🔘Общие инструменты команды: Достаточно один раз оформить скрипт на Python в виде плагина, и он станет доступен агенту во всех задачах через локальный CLI-мост (centaur-tools).

🔘Отказоустойчивые воркфлоу: Поддерживает долгие многошаговые сценарии, которые могут ждать внешних событий, запускать дочерних агентов и не терять состояние при перезапуске сервисов.

🛠Сценарии использования:

🔘Быстрый поиск причин падения тестов и сбоев в CI/CD.

🔘Ответы на вопросы команды с использованием внутренних баз данных и закрытых сервисов.

🔘Формирование регулярных дайджестов и выжимок из длинных переписок.

🔘Автоматизация рутинных многошаговых операций и дежурств (On-Call).

⚙️Стек и архитектура:

Панель управления и API платформы написаны на Rust (Axum) с сохранением состояний в PostgreSQL, интерфейс взаимодействия со Slack реализован отдельным микросервисом, а задачи оркестрируются в среде Kubernetes.

#Centaur #AIAgents #Slack #Kubernetes #Rust #DevOps #DevTools #OpenSource #Automation #Security

📱Ссылка на репозиторий:
https://github.com/paradigmxyz/centaur
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2🔥21
📱Bashautom.

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


✅Требования: Python 3.10+, поддержка Linux и macOS. Лицензия: MIT.

#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
👍31