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

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

Сайт: https://pythonomania.github.io/
Download Telegram
📱Pytest-testmon.

pytest-testmon — плагин для Pytest, который повторно запускает только тесты, затронутые последними изменениями в коде.

❓Как это работает в динамическом языке, как Python?

✅Плагин анализирует покрытие тестов, отслеживает зависимости, и сохраняет информацию в .testmondata. При следующем запуске он сравнивает изменения и запускает только нужные тесты. Это похоже на магию — но работает!

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

🔘pip install pytest-testmon.

🔘pytest --testmon # Первый прогон — строим базу зависимостей.

🔘# Вносим изменения в код.

🔘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
2🔥3👍1
📱Smartypants.

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

Пример:
import smartypants
text = '"SmartyPants" is smart, so is <code>smartypants</code> -- a Python port'
print(smartypants.smartypants(text))


Результат:
&#8220;SmartyPants&#8221; is smart, so is <code>smartypants</code> &#8212; 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
13👍22
📱Nbdev.

nbdev — это мощная платформа для разработки прямо в Jupyter-ноутбуках. Пиши код и документацию в одном месте, а nbdev автоматически создаст тесты, документацию, CI и готовый Python-пакет.

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

🔘Автоматическая генерация документации через Quarto (с поддержкой LaTeX и поиска).

🔘Публикация на PyPI и Conda.

🔘Синхронизация кода между .ipynb и .py.

🔘CI на GitHub Actions.

🔘Чистые коммиты: убирается лишняя метаинформация из ноутбуков.

🔘Тесты пишутся прямо в ячейках и запускаются одной командой.

✅Идеально для тех, кто хочет разрабатывать в Jupyter и при этом следовать лучшим практикам 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
14👍3🔥3
📱Full Stack FastAPI Template.

Full Stack FastAPI Template
— это готовый шаблон для создания современного веб-приложения от бэкенда до фронтенда. Всё настроено: бери и пиши бизнес-логику.

🔹Что внутри:

🔘FastAPI + SQLModel + PostgreSQL на бэке.

🔘JWT, безопасное хеширование паролей, восстановление по email.

🔘Pytest + Playwright для тестов.

🔘React + TypeScript + Vite + Chakra UI на фронте.

🔘Поддержка тёмной темы.

🔘Docker Compose для dev/prod.

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

🔘CI/CD через GitHub Actions.

🔘Traefik как обратный прокси с HTTPS.

✅Идеально подходит для запуска стартапа, MVP или внутреннего сервиса. Всё по лучшим практикам.

#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
13👍2🔥2🤔11
📱Pipdeptree.

pipdeptree — это утилита, которая показывает зависимости установленных Python-пакетов в виде наглядного дерева.

Когда вы делаете pip freeze, весь список идёт плоской строкой — и невозможно понять, какой пакет от чего зависит и почему вообще оказался в окружении. Поэтому искать «кто тянет старую версию X» или разбираться с конфликтами — мучение.

🔹pipdeptree решает эту проблему:

🔘Показывает зависимости в виде дерева.

🔘Помогает найти конфликтующие версии.

🔘Умеет работать внутри virtualenv (в том числе автоматически — --python auto).

🔘Может вывести JSON, mermaid-диаграмму или граф GraphViz.

🔘Умеет искать «кто зависит от этого пакета» через --reverse.

🔘Подходит для генерации чистого requirements.txt или даже «lock файла».

🔘Полезно в CI — можно включить строгий режим --warn fail.

🔻Пример:

pipdeptree сразу покажет, что Flask → Jinja2 → MarkupSafe и где возникает конфликт.

✅Если вы хотите видеть всю структуру зависимостей проекта и ловить проблемы до того, как они взорвут прод — pipdeptree действительно выручает.

#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
2👍1
📱Safety CLI.

Safety CLI — это инструмент командной строки для обнаружения уязвимостей и вредоносных пакетов в Python-зависимостях. Работает в локальной разработке, CI/CD и продакшене, обеспечивая безопасность цепочки поставок ПО.

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

🔘Комплексное сканирование зависимостей Python с использованием самой полной базы данных уязвимостей Safety DB.

🔘Автоматическое обновление requirements до безопасных версий с учетом политик проекта.

🔘Вывод результатов в JSON, SBOM, HTML и текстовом формате.

🔘Интеграция с GitHub Actions, GitLab, BitBucket и другими 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
1👍2🔥2
📱OracleTrace.

OracleTrace — это легковесный Python-профайлер, созданный специально для поиска просадок производительности (регрессий), быстрого сравнения трейсов и наглядной визуализации графа вызовов.

Традиционные профилировщики часто бывают перегружены деталями и плохо подходят для простого ответа на вопрос: «А не стал ли мой скрипт работать медленнее после последних правок?». OracleTrace решает именно эту задачу.

🔹Главные фичи:

🔘Поиск регрессий: сравнивайте два JSON-файла с трейсами и моментально находите функции, которые стали работать медленнее, быстрее, или вовсе были удалены/добавлены.

🔘Идеально для CI/CD: инструмент умеет ронять пайплайн, если код замедлился больше заданного порога (флаг --fail-on-regression).

🔘Наглядный граф вызовов: строит визуальное дерево выполнения (кто, кого и сколько раз вызывал).

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

🔘Экспорт: результаты можно легко выгрузить в JSON (для автоматизации) или CSV (для отчетов).

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

Под капотом используется встроенная функция 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
1👍3⚡2🔥21
📱Vibescore.

Vibescore — это инструмент для быстрой оценки качества проектов, написанных с помощью ИИ (так называемый "vibe coding"). Одна команда — и вы получаете моментальную буквенную оценку (от A+ до F) "здоровья" вашего репозитория.

Сегодня "vibe coding" — это новая реальность: вы пишете промпты, ИИ пишет код, вы отправляете его в прод. Это очень быстро, но несет риски. Нейросети часто выдают функции-монстры, игнорируют базовую безопасность, забывают про тесты и используют нестабильные зависимости. Vibescore выявляет эти паттерны за пару секунд.

🔹Что проверяет и как оценивает:

Оценка формируется из 4 независимых категорий:

🔘Безопасность (Вес 30%): Поиск захардкоженных секретов, AWS-ключей, SQL/Shell инъекций, eval/exec и приватных ключей. (Самый большой вес, т.к. ошибка ИИ тут фатальна).

🔘Качество кода (Вес 25%): Длина функций, цикломатическая сложность, количество аргументов, аннотации типов и наличие докстрингов.

🔘Тестирование (Вес 25%): Наличие тестов, их количество, конфигурация CI и соотношение тестов к рабочему коду.

🔘Зависимости (Вес 20%): Наличие lock-файлов, строгая фиксация версий и проверка на использование устаревших форматов (вроде старых setup.py).

🔻Главные фичи:

🔘Комплексный анализ: В отличие от ruff или flake8, которые смотрят на код построчно, vibescore оценивает проект целиком, показывая общую картину.

🔘Идеально для CI/CD: Можно настроить автоматическое падение пайплайна (например, в GitHub Actions или pre-commit), если оценка падает ниже заданного порога (--min-score 70).

🔘Полностью оффлайн: Никаких запросов в сеть и API-ключей. У пакета вообще ноль зависимостей.

🔘*Примечание:* Сейчас детальный анализ кода и тестов заточен под Python (3.9+), но проверки безопасности и зависимостей работают для любых проектов.

🚀Быстрый старт:
pip install vibescore
vibescore .

#Python #VibeCoding #AI #DevTools #CI #Security #CodeQuality #OpenSource

📱Ссылка на репозиторий:
https://github.com/stef41/vibescore
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3⚡2
📱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
📱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