Envgap - это диагностическая консольная утилита для Python-проектов, которая находит расхождения и рассинхрон между файлами
.env, .env.example, переменными окружения в shell и вызовами в коде (os.environ, os.getenv или Pydantic BaseSettings).Утилита не загружает ваши конфигурации в рантайм приложения. Её главная задача — показать, почему переменная окружения работает на вашей локальной машине, но внезапно вызывает сбой в CI/CD, внутри Docker-контейнера или на ПК другого разработчика.
DB_URL вместо DATABASE_URL)..env.example, в которых забыли указать новые переменные.changeme, todo или your-key-here.BaseSettings, алиасы, префиксы и дефолтные значения.Если в коде приложения указано:
import os
DATABASE_URL = os.environ["DATABASE_URL"]
А в файле
.env прописано DB_URL=postgres://localhost/app, утилита покажет четкий диагноз:DATABASE_URL отсутствует в .env (ошибка).DB_URL в .env может быть опечаткой для DATABASE_URL (предложение переименовать).Установка через pip:
pip install envgap
Запуск проверки в текущем проекте:
envgap check
Использование в CI пайплайнах (строгий режим с выходом с кодом 1 при предупреждениях):
envgap check --ci
#Python #DevTools #FastAPI #Docker #CICD #Dotenv #Pydantic #Backend #OpenSource #Debugging
https://github.com/Pinak-Datta/envgap
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Pinak-Datta/envgap: enFind gaps between .env, .env.example, shell variables, and Python code.
enFind gaps between .env, .env.example, shell variables, and Python code. - Pinak-Datta/envgap
1👍3🔥3 2
Pyrig - это пакет и CLI-инструмент, который стандартизирует и автоматизирует создание, настройку, разработку и поддержку Python-проектов под ключ.
В отличие от простых генераторов шаблонов (cookiecutter, copier, pyscaffold),
pyrig не просто создает структуру папок, но и берет на себя управление конфигурацией, генерацию CLI, тестовую инфраструктуру и настройку CI/CD.pyrig init разворачивает проект со стандартизированной структурой, полностью настроенными линтерами, форматтерами, тайп-чекерами, фреймворками для тестирования и Git-хуками.pyrig можно переопределить через наследование (pyrig mk subcls). Команда pyrig sync синхронизирует и обновляет все конфиги разом.pyrig mk cmd <name>.pyrig sync автоматически создает заготовки тестов для всех исходных модулей и актуализирует их по мере развития кодовой базы.Для работы требуются Python 3.12+, Git и пакетный менеджер uv:
# 1. Создаем проект
uv init my-project --python 3.12
cd my-project
# 2. Добавляем pyrig в dev-зависимости
uv add pyrig --dev
# 3. Инициализируем окружение
uv run pyrig init
После инициализации готовый CLI вашего проекта можно проверить командой
my-project --help.#Python #Pyrig #uv #DevTools #Automation #CICD #Testing #GitHubActions #OpenSource #Scaffolding
https://github.com/Winipedia/pyrig
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Winipedia/pyrig: A tool that standardizes and automates Python project setup, configuration, development, and maintenance.
A tool that standardizes and automates Python project setup, configuration, development, and maintenance. - Winipedia/pyrig
3⚡2🔥2 1
Arid - это сверхбыстрый инструмент для поиска дублирующегося кода в Python-проектах, написанный на Rust.
Проект создан как узкоспециализированная замена анализатору дубликатов из Pylint (правило
R0801 / утилита symilar). Arid не пытается быть еще одним универсальным линтером, а идеально дополняет Ruff: пока Ruff форматирует и линтит код, Arid берет на себя строгий контроль принципа DRY (Don't Repeat Yourself).jscpd, Arid парсит синтаксис языка и поддерживает умную нормализацию. При поиске дубликатов можно исключать комментарии, докстринги, блоки импортов и сигнатуры функций.--write-baseline arid-baseline.json). В CI проверяются только новые дубликаты, не ломая сборки на старом коде.# arid: disable / # arid: enable. Опция --suppression-status --fail-on-stale отслеживает и требует удалять комментарии подавления, если код вокруг изменился и дубликата больше нет.pre-commit (анализирует весь проект целиком, а не только staged-файлы) и конфигурация через секцию [tool.arid] в pyproject.toml.Установка:
# Через uv (изолированно):
uv tool install arid
# Или через pip:
pip install arid
Использование в связке с Ruff:
ruff check .
arid .
Пример конфигурации в
pyproject.toml:Ini, TOML
[tool.arid]
min-lines = 5
ignore-comments = true
ignore-docstrings = true
ignore-imports = true
ignore-signatures = true
exclude = ["generated/**", "vendor/**"]
#Python #Rust #Arid #Ruff #Pylint #DRY #CodeQuality #CleanCode #DevTools #OpenSource #CICD
https://github.com/sponge-b0b/arid
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - sponge-b0b/arid: Fast Python duplicate-code checker written in Rust. A focused replacement for Pylint R0801 that complements…
Fast Python duplicate-code checker written in Rust. A focused replacement for Pylint R0801 that complements Ruff. - sponge-b0b/arid
DeployProof - это инструмент командной строки (CLI) для Python, предназначенный для верификации кода (в том числе сгенерированного ИИ) с помощью молниеносного мутационного тестирования AST прямо в оперативной памяти.
Нейросети вроде Copilot или ChatGPT легко генерируют тесты со 100% покрытием строк (line coverage), которые при этом не проверяют реальную логику и граничные условия: мутационный скор у такого сьюта часто близок к нулю. DeployProof решает эту проблему прямо перед коммитом или пушем в CI.
🧬 В чем отличие от Mutmut и Cosmic Ray?
git diff. Проверка отрабатывает за пару секунд — буквально пока вы переключаете вкладку.>=, ==, and, or), константы, граничные значения строк, меняет аргументы местами и убирает await без перезаписи файлов на диске.--heal-tests анализирует выживших мутантов и автоматически синтезирует готовые к запуску pytest-кейсы, закрывающие обнаруженные дыры в логике.shell=True, небезопасную десериализацию (pickle, yaml.load) и обход путей.# Проверка изменений в git diff перед пушем
deployproof check
# Автоматическая генерация тестов под выжившие мутации
deployproof check --heal-tests
# Установка pre-push хука в один клик
deployproof init
pip install deployproof
# или изолированно через pipx:
pipx install deployproof
#Python #DeployProof #MutationTesting #Testing #QA #Pytest #AICode #DevTools #OpenSource #AppSec #CICD
https://github.com/SVSPraveen/deployproof
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - SVSPraveen/deployproof: Deterministic pre-push verification for AI-assisted codebases: AST mutation testing, credential…
Deterministic pre-push verification for AI-assisted codebases: AST mutation testing, credential scanning, sandbox-escape detection, mock-usage alerts, and dependency hallucination defense. - SVSPra...