pytest-testmon — плагин для Pytest, который повторно запускает только тесты, затронутые последними изменениями в коде.
pip install pytest-testmon.#Python #pytest #testmon #CI #unittesting #DevTools #TestOptimization #SoftwareTesting #Automation #OpenSource
https://github.com/tarpas/pytest-testmon
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - tarpas/pytest-testmon: Selects tests affected by changed files. Executes the right tests first. Continuous test runner…
Selects tests affected by changed files. Executes the right tests first. Continuous test runner when used with pytest-watch. - tarpas/pytest-testmon
2🔥3👍1
smartypants — это Python-порт оригинального инструмента SmartyPants, предназначенный для интеллектуального преобразования типографики в тексте: кавычек, тире, многоточий и т.д.
Пример:
import smartypants
text = '"SmartyPants" is smart, so is <code>smartypants</code> -- a Python port'
print(smartypants.smartypants(text))
Результат:
“SmartyPants” is smart, so is <code>smartypants</code> — a Python port
#Python #SmartyPants #smartypants #PyPI #CLI #TextFormatting #OpenSource #PythonTools #GitHubActions #DevTools #Repology #CI #CodeQuality
https://github.com/justinmayer/smartypants.py
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - justinmayer/smartypants.py: Translate plain ASCII quotation marks and other characters into “smart” typographic HTML entities.
Translate plain ASCII quotation marks and other characters into “smart” typographic HTML entities. - justinmayer/smartypants.py
1 3👍2 2
nbdev — это мощная платформа для разработки прямо в Jupyter-ноутбуках. Пиши код и документацию в одном месте, а nbdev автоматически создаст тесты, документацию, CI и готовый Python-пакет.
#nbdev #Python #Jupyter #DataScience #CI #Quarto #OpenSource #GitHubActions #PyPI #Conda #MLOps #notebookDrivenDevelopment #разработка
https://github.com/AnswerDotAI/nbdev
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - AnswerDotAI/nbdev: Create delightful software with Jupyter Notebooks
Create delightful software with Jupyter Notebooks. Contribute to AnswerDotAI/nbdev development by creating an account on GitHub.
1 4👍3🔥3
Full Stack FastAPI Template — это готовый шаблон для создания современного веб-приложения от бэкенда до фронтенда. Всё настроено: бери и пиши бизнес-логику.
#FastAPI #FullStack #WebDev #Python #React #Docker #CI_CD #PostgreSQL #TypeScript #JWT #Vite #OpenSource #DevTemplate #Traefik #ChakraUI
https://github.com/fastapi/full-stack-fastapi-template
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - fastapi/full-stack-fastapi-template: Full-stack web application template with FastAPI, React, SQLModel, PostgreSQL, Vite…
Full-stack web application template with FastAPI, React, SQLModel, PostgreSQL, Vite, Tailwind CSS, shadcn/ui, FastAPI Cloud, and Docker Compose. - fastapi/full-stack-fastapi-template
1 3👍2🔥2🤔1 1
pipdeptree — это утилита, которая показывает зависимости установленных Python-пакетов в виде наглядного дерева.
Когда вы делаете pip freeze, весь список идёт плоской строкой — и невозможно понять, какой пакет от чего зависит и почему вообще оказался в окружении. Поэтому искать «кто тянет старую версию X» или разбираться с конфликтами — мучение.
pipdeptree сразу покажет, что Flask → Jinja2 → MarkupSafe и где возникает конфликт.
#Python #pipdeptree #Dependencies #Virtualenv #Pip #DevTools #PythonTips #CI #PackageManagement
https://github.com/tox-dev/pipdeptree
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - tox-dev/pipdeptree: A command line utility to display dependency tree of the installed Python packages
A command line utility to display dependency tree of the installed Python packages - tox-dev/pipdeptree
Safety CLI — это инструмент командной строки для обнаружения уязвимостей и вредоносных пакетов в Python-зависимостях. Работает в локальной разработке, CI/CD и продакшене, обеспечивая безопасность цепочки поставок ПО.
#Python #Security #DevSecOps #SafetyCLI #Vulnerability #CI_CD #OpenSource #Безопасность #Уязвимости #Python3
https://github.com/pyupio/safety
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pyupio/safety: Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations…
Safety checks Python dependencies for known security vulnerabilities and suggests the proper remediations for vulnerabilities detected. - pyupio/safety
1👍2🔥2
OracleTrace — это легковесный Python-профайлер, созданный специально для поиска просадок производительности (регрессий), быстрого сравнения трейсов и наглядной визуализации графа вызовов.
Традиционные профилировщики часто бывают перегружены деталями и плохо подходят для простого ответа на вопрос: «А не стал ли мой скрипт работать медленнее после последних правок?». OracleTrace решает именно эту задачу.
--fail-on-regression).Под капотом используется встроенная функция
sys.setprofile() для перехвата вызовов (call) и возвратов (return). Инструмент замеряет время выполнения каждой функции и фиксирует связи между ними, не требуя тяжелой инструментации кода.pip install oracletrace(Требуется Python 3.10+)
💡 Пример использования:
Сначала сохраняем базовый трейс:
oracletrace my_app.py --json baseline.jsonЗатем сравниваем с новой версией (например, в CI):
oracletrace my_app.py --json current.json --compare baseline.json --fail-on-regression --threshold 25#Python #Profiling #Backend #DevTools #CI #OpenSource #Performance #Programming
https://github.com/KaykCaputo/oracletrace
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - KaykCaputo/oracletrace: Lightweight Python tool to detect performance regressions and compare execution traces with call…
Lightweight Python tool to detect performance regressions and compare execution traces with call graph visualization. - KaykCaputo/oracletrace
1👍3⚡2🔥2 1
Vibescore — это инструмент для быстрой оценки качества проектов, написанных с помощью ИИ (так называемый "vibe coding"). Одна команда — и вы получаете моментальную буквенную оценку (от A+ до F) "здоровья" вашего репозитория.
Сегодня "vibe coding" — это новая реальность: вы пишете промпты, ИИ пишет код, вы отправляете его в прод. Это очень быстро, но несет риски. Нейросети часто выдают функции-монстры, игнорируют базовую безопасность, забывают про тесты и используют нестабильные зависимости. Vibescore выявляет эти паттерны за пару секунд.
Оценка формируется из 4 независимых категорий:
eval/exec и приватных ключей. (Самый большой вес, т.к. ошибка ИИ тут фатальна).setup.py).--min-score 70).pip install vibescorevibescore . #Python #VibeCoding #AI #DevTools #CI #Security #CodeQuality #OpenSource
https://github.com/stef41/vibescore
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - stef41/vibescore: 🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies…
🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies, and testing. - stef41/vibescore
1🔥3⚡2
Pytest-fly — это мощный инструмент для разработки, отладки и запуска сложных тестовых наборов на pytest. GUI с 6 вкладками в реальном времени мониторит выполнение тестов, параллелизм и ресурсы.
системные метрики (CPU/RAM/IO), failed тесты, live output.
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
GitHub
GitHub - jamesabel/pytest-fly: pytest observer
pytest observer. Contribute to jamesabel/pytest-fly development by creating an account on GitHub.
1⚡2👍2 2
Tia - это инструмент анализа влияния тестов (Test Impact Analysis) для
pytest, который позволяет запускать только те тесты, на которые действительно повлияли ваши изменения в коде.Зачем тратить драгоценное время CI-пайплайнов на прогон сотен тестов, которые физически не могли сломаться от вашей правки?
Tia один раз собирает карту покрытия, а затем с помощью git diff вычисляет и запускает строго минимальный набор тестов. Эту же концепцию оптимизации используют внутри себя такие гиганты, как Google и Meta.Главный грех подобных утилит — случайно пропустить тест, который на самом деле должен был упасть. Разработчики
tia подошли к вопросу жестко:boltons) реальный показатель пропуска достигает 96%!black или добавление докстрингов, tia поймет через сравнение AST-деревьев, что рантайм-код не изменился, и пропустит 99%+ тестов.if TYPE_CHECKING: не запускают тесты зря. Но если вы измените тип поля в Pydantic или dataclass (что влияет на логику работы), утилита это честно отловит.tia record — запускает полную кодовую базу и строит карту на уровне конкретных методов и функций {тест -> {файл -> функции}}, сохраняя её в .tia/map.json. Благодаря системным аудит-хукам утилита запоминает даже не-Python файлы (фикстуры, шаблоны, конфиги), которые читал тест.tia run — анализирует текущий git diff, сопоставляет измененные строки с функциями и на основе 4 правил (попадание в функцию, изменение модуля, дата-зависимость и появление нового теста) отправляет в pytest только целевой набор.Карту тестов, собранную на базовой ветке, можно легко передавать в задачи пул-реквестов.
tia поддерживает работу с удаленными хранилищами из коробки:tia serve) без внешних зависимостей.s3://) и Google Cloud Storage (gs://).$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
GitHub
GitHub - breadMSA/pytest-tia: Test Impact Analysis for pytest: run only the tests your change actually affects. Method-level, tracks…
Test Impact Analysis for pytest: run only the tests your change actually affects. Method-level, tracks non-.py deps, CI-ready, and honest about its limits. - breadMSA/pytest-tia
1🔥2 2👍1