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

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

Сайт: https://pythonomania.github.io/
Download Telegram
📱Envgap.

Envgap
- это диагностическая консольная утилита для Python-проектов, которая находит расхождения и рассинхрон между файлами .env, .env.example, переменными окружения в shell и вызовами в коде (os.environ, os.getenv или Pydantic BaseSettings).

Утилита не загружает ваши конфигурации в рантайм приложения. Её главная задача — показать, почему переменная окружения работает на вашей локальной машине, но внезапно вызывает сбой в CI/CD, внутри Docker-контейнера или на ПК другого разработчика.

❓Зачем нужен envgap.

🔘Поиск опечаток: Легко находит несоответствия в именах (например, DB_URL вместо DATABASE_URL).

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

🔘Детектор секретов-заглушек: Находит оставленные в конфигах тестовые значения вроде changeme, todo или your-key-here.

🔘Поддержка Pydantic и FastAPI: Распознает поля BaseSettings, алиасы, префиксы и дефолтные значения.

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

🔻Пример работы.
Если в коде приложения указано:

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
1👍3🔥32
📱Pyrig.

Pyrig
- это пакет и CLI-инструмент, который стандартизирует и автоматизирует создание, настройку, разработку и поддержку Python-проектов под ключ.

В отличие от простых генераторов шаблонов (cookiecutter, copier, pyscaffold), pyrig не просто создает структуру папок, но и берет на себя управление конфигурацией, генерацию CLI, тестовую инфраструктуру и настройку CI/CD.

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

🔘Генерация проекта из коробки: Команда pyrig init разворачивает проект со стандартизированной структурой, полностью настроенными линтерами, форматтерами, тайп-чекерами, фреймворками для тестирования и Git-хуками.

🔘Конфигурация через классы: Все конфигурационные файлы проекта представлены в виде классов. Контент валидируется по схеме, а поведение любой части pyrig можно переопределить через наследование (pyrig mk subcls). Команда pyrig sync синхронизирует и обновляет все конфиги разом.

🔘Автоматический CLI: Сразу создает рабочий интерфейс командной строки для вашего проекта. Добавлять новые команды можно в один клик: pyrig mk cmd <name>.

🔘Зеркальная генерация тестов: pyrig sync автоматически создает заготовки тестов для всех исходных модулей и актуализирует их по мере развития кодовой базы.

🔘CI/CD и защита репозитория: Генерирует пайплайны GitHub Actions для автоматического тестирования и релизов, а также настраивает правила защиты веток и репозитория.

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

Для работы требуются 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
3⚡2🔥21
📱Arid.

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

Проект создан как узкоспециализированная замена анализатору дубликатов из Pylint (правило R0801 / утилита symilar). Arid не пытается быть еще одним универсальным линтером, а идеально дополняет Ruff: пока Ruff форматирует и линтит код, Arid берет на себя строгий контроль принципа DRY (Don't Repeat Yourself).

🔹Главные фичи и преимущества:

🔘Производительность Rust: В бенчмарках на реальных кодовых базах (Requests, Pydantic, Polaris) отрабатывает в 190–250 раз быстрее, чем анализатор Pylint.

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

🔘Baselines: Позволяет зафиксировать текущий техдолг в легаси-проектах (--write-baseline arid-baseline.json). В CI проверяются только новые дубликаты, не ломая сборки на старом коде.

🔘Suppression audit: Намеренные дубликаты можно изолировать директивами # arid: disable / # arid: enable. Опция --suppression-status --fail-on-stale отслеживает и требует удалять комментарии подавления, если код вокруг изменился и дубликата больше нет.

🔘Машиночитаемые отчеты: Поддерживает вывод в Text, JSON, Markdown и стандартный формат SARIF (для бесшовной интеграции с GitHub Code Scanning).

🔘Готовая экосистема: Официальный GitHub Action, хук для 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
4⚡31
📱DeployProof.

DeployProof
- это инструмент командной строки (CLI) для Python, предназначенный для верификации кода (в том числе сгенерированного ИИ) с помощью молниеносного мутационного тестирования AST прямо в оперативной памяти.

Нейросети вроде Copilot или ChatGPT легко генерируют тесты со 100% покрытием строк (line coverage), которые при этом не проверяют реальную логику и граничные условия: мутационный скор у такого сьюта часто близок к нулю. DeployProof решает эту проблему прямо перед коммитом или пушем в CI.

🧬 В чем отличие от Mutmut и Cosmic Ray?

🔘Классические мутационные фреймворки перезаписывают исходные файлы на диске и заново запускают тесты для каждого мутанта на всем проекте, что занимает минуты или часы.

🔘DeployProof компилирует все мутации в единое условное AST-дерево прямо в RAM (без дискового I/O) и анализирует только измененные файлы из текущего git diff. Проверка отрабатывает за пару секунд — буквально пока вы переключаете вкладку.

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

🔘In-Memory AST Mutation: Мутирует операторы (>=, ==, and, or), константы, граничные значения строк, меняет аргументы местами и убирает await без перезаписи файлов на диске.

🔘Самоисцеление тестов (Self-Healing Tests): Флаг --heal-tests анализирует выживших мутантов и автоматически синтезирует готовые к запуску pytest-кейсы, закрывающие обнаруженные дыры в логике.

🔘Комплексные шлюзы безопасности (Security Gates):

🔘SAST: Проверка на инъекции, shell=True, небезопасную десериализацию (pickle, yaml.load) и обход путей.

🔘Поиск секретов: Анализ энтропии Шеннона в файлах и последних 50 коммитах Git (поиск API-ключей OpenAI, AWS, GitHub, Stripe).

🔘Защита от галлюцинаций ИИ: Проверяет установленные пакеты через PyPI API на предмет выдуманных нейросетью библиотек (slopsquatting) и сопоставляет с базой уязвимостей OSV (CVE).

🔘100% приватность: Код и результаты тестов не покидают вашу локальную машину (в сеть уходят только read-only запросы к PyPI и OSV).

💻Пример работы:

# Проверка изменений в 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
3👍2