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

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

Сайт: https://pythonomania.github.io/
Download Telegram
📱Pylint-pytest.

Pylint-pytest — удобный плагин для подавления ложных срабатываний Pylint, связанных с pytest. Позволяет избежать предупреждений, таких как неиспользуемые аргументы в фикстурах, повторное определение имен и многое другое.

#Pylint #Pytest #Python #CodeQuality #Automation

📱Ссылка на репозиторий:
https://github.com/pylint-dev/pylint-pytest
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4
📱Deply.

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

🔹Основные функции:

🔘Анализ на основе слоёв: Определяйте слои проекта и ограничивайте их зависимости для усиления модульности.

🔘Динамическая конфигурация слоёв: Настраивайте коллекторы для каждого слоя с помощью шаблонов файлов, наследования классов и логических условий.

🔘Правила кросс-слойных зависимостей: Задавайте правила, запрещающие доступ определённых слоёв к другим.

🔘Расширяемость и гибкость: Настраивайте слои и правила для любого Python проекта.

✅Deply — для тех, кто ценит порядок в архитектуре и чистый код!

#Python #Programming #SoftwareArchitecture #CleanCode #Deply #DependencyManagement #CodeQuality

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

Ruff
— это ультрабыстрый линтер и форматтер кода, написанный на Rust. Он в 10-100 раз быстрее, чем Flake8 и Black, и поддерживает Python 3.13.

❓Почему стоит попробовать Ruff?

🔘Молниеносная скорость — линтинг CPython с нуля за секунды.
🔘Установка через pip.
🔘Поддержка pyproject.toml.
🔘Автоисправления ошибок, например, удаление неиспользуемых импортов.
🔘800+ встроенных правил, включая flake8-bugbear.
🔘Кэширование, чтобы не анализировать неизменённые файлы.
🔘Гибкие настройки для монорепозиториев.
🔘Интеграция с VS Code и другими редакторами.

💡 Ruff заменяет Flake8 (и десятки плагинов), Black, isort, pydocstyle, autoflake, pyupgrade — и делает это в разы быстрее!

❗️Используется в крупных проектах:

🔘Apache Airflow, Superset.
🔘FastAPI, Hugging Face.
🔘Pandas, SciPy и многих других

✅Попробуйте Ruff и ускорьте свой Python-код!

#Python #Ruff #Linting #Black #Flake8 #CodeQuality #PyDev #RustLang

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

complexipy — это библиотека для анализа когнитивной сложности Python-кода. Написана на Rust, с поддержкой CLI, Python API, GitHub Actions, VSCode и pre-commit-хуков.

🧠Что такое когнитивная сложность?

Это метрика, которая оценивает, насколько сложно человеку понять код. В отличие от цикломатической сложности, она учитывает вложенность, ветвления и общее когнитивное восприятие.

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

🔘Анализ файлов, каталогов и репозиториев.

🔘Отчёты в CSV и JSON.

🔘Быстрая интеграция в CI/CD и pre-commit.

🔘Поддержка VSCode (расширение).

🔘API для Python (анализ кода из файла или строки).

🔻Интеграции:

🔘GitHub Actions для автоматических проверок.

🔘Pre-commit hook для контроля качества перед коммитом.

🔘VSCode Extension — анализ в реальном времени с цветовой индикацией сложности.

#Python #complexipy #CodeQuality #CognitiveComplexity #RustPowered #DevTools #VSCode #PreCommit #GitHubActions #StaticAnalysis #ComplexityAnalysis #PythonDev #CItools

📱Ссылка на репозиторий:
https://github.com/rohaquinlop/complexipy
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥2313👍6
📱Transfunctions.

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

✅Transfunctions решает одну из ключевых проблем Python — дублирование кода из-за разделения функций на синхронные и асинхронные.

С помощью шаблонов вы пишете логику один раз и генерируете сразу несколько версий:

🔘Обычную (sync).

🔘Асинхронную (async).

🔘Генератор (generator).

💡Как это работает:

🔘Используются маркеры (sync_context, async_context, generator_context) для выделения специфичных блоков.

🔘На базе одного шаблона создаются разные типы функций без изменения синтаксиса Python.

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

🔹Пример:
@transfunction
def template():
print('so, ', end='')
with sync_context:
print("it's just usual function!")
with async_context:
print("it's an async function!")
with generator_context:
print("it's a generator function!")
yield


➡️Далее:
template.get_usual_function()
template.get_async_function()
template.get_generator_function()


🎯Преимущества:

🔘Нет дублирования кода.

🔘Простая поддержка sync/async/generator.

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

🔘Легко интегрировать в существующий код.

#Python #AsyncIO #Generators #CodeQuality #DevTools #Backend #Transfunctions #Refactoring #CodeReuse #PythonTips

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

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

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

✅Подходит тем, кто пишет с Cursor, Claude, или ChatGPT.

🔹Основные фичи pyscn:

🔘Dead code detection (CFG) — находит недостижимый код после цепочек if / elif / else.

🔘Clone detection (APTED + LSH) — определяет участки, которые стоит вынести или отрефакторить.

🔘Coupling metrics (CBO) — показывает, насколько тесно связаны модули.

🔘Cyclomatic complexity — измеряет сложность функций.

🔘Более 100 000 строк/сек — анализ на скорости Go.

⚡️Быстрый старт:
uvx pyscn analyze .
# или
pipx run pyscn analyze .


📦Установка:
pipx install pyscn
# или
uv tool install pyscn



🐱Полезные команды:
pyscn analyze .                            # Полный анализ с HTML-отчётом
pyscn analyze --json . # JSON-отчёт
pyscn analyze --select deps,complexity . # Выборочные метрики
pyscn check . # Быстрая CI-проверка
pyscn init # Создание .pyscn.toml


💬Почему pyscn?

🔘Потому что он не просто проверяет стиль — он понимает структуру кода.

🔘Подходит для ревью, CI и анализа крупных Python-проектов.

📚 Документация: github.com/ludo-tech/pyscn

#Python #StaticAnalysis #CodeQuality #CleanCode #CyclomaticComplexity #DeadCode #TreeSitter #GoLang #Cursor #Claude #ChatGPT #pyscn #CodeRefactoring #SoftwareArchitecture

📱Ссылка на репозиторий:
https://github.com/ludo-technologies/pyscn
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3👍3
📱Code Spy.

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

Представьте: вы сохраняете файл — а Code Spy сам запускает MyPy, Pylint, Pytest, Black или даже перезапускает dev-сервер. Вам не нужно переключаться в терминал, вручную запускать команды или следить, что что-то забыли проверить. Всё происходит автоматически.

❓Что умеет Code Spy:

🔘MyPy — проверка типов.

🔘Black — автоформатирование.

🔘Pylint — линтинг.

🔘Pytest — тесты.

🔘DevServer — перезапуск приложения (например, Flask).

🔻Дополнительные задачи (при установке соответствующих библиотек):

🔘ISort.

🔘Flake8.

🔘Bandit.

🔘Sphinx.

🔘Custom Tasks.

Вы просто указываете путь к проекту, настраиваете задачи — и Code Spy начинает «шпионить» за файлами, реагируя на любые изменения.

✅Отличный инструмент, если хотите постоянно поддерживать качество кода, не думая о рутине.

#Python #CodeSpy #Automation #DevTools #Pytest #Pylint #MyPy #Black #Flask #CodeQuality

📱Ссылка на репозиторий:
https://github.com/joegasewicz/code-spy
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡322
📱Bandit.

Bandit — это инструмент для поиска распространенных проблем безопасности в Python-коде. Он анализирует каждый файл, строит из него AST(Abstract Syntax Tree) и запускает соответствующие плагины для проверки узлов дерева. После сканирования всех файлов Bandit генерирует подробный отчет.

🔹Ключевые особенности:

🔘Бесплатное ПО с лицензией Apache.

🔘7.5k звезд на GitHub.

🔘Поддержка контейнеров для различных архитектур (amd64, arm64, armv7, armv8).

🔘Изначально разработан в рамках OpenStack Security Project.

✅Отличный инструмент для автоматизации проверок безопасности в CI/CD пайплайне!

#Python #Security #Bandit #Linter #CodeQuality #DevSecOps #StaticAnalysis #OpenSource #SecurityTools #PyCQA #Automation

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

Pymetrica — это
мощный инструмент статического анализа, который вычисляет метрики программной инженерии для проектов на Python.

С помощью парсинга абстрактного синтаксического дерева (AST), инструмент оценивает классические показатели качества: сложность, удобство сопровождения и стабильность архитектуры.

Pymetrica не просто считает строки кода. Инструмент выделяется тем, что группирует метрики по слоям архитектуры (на основе структуры директорий) и может генерировать наглядные схемы связей в формате Mermaid.

❓Что умеет измерять (Метрики):

🔘ALOC (Abstract Lines of Code): Измеряет уровень абстракции в коде. Слишком высокие значения могут указывать на "оверинжиниринг".

🔘Cyclomatic Complexity (CC): Оценивает количество независимых путей выполнения программы (ветвления, циклы, обработка исключений). Чем выше значение, тем сложнее поддерживать код.

🔘Halstead Volume (HV): Оценивает сложность реализации, базируясь на количестве операторов и операндов.

🔘Primitive Obsession (PO): Показывает, насколько сильно код зависит от примитивных типов (int, str, dict) вместо доменно-специфичных абстракций (классов/моделей).

🔘Maintainability Cost (MC): Композитная оценка стоимости поддержки кода. Чем ниже, тем лучше.

🔘Instability (LI): Анализ архитектурной стабильности и связанности (coupling) слоев на основе импортов.

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

🔘Оценка качества архитектуры, а не только "линтер ошибок".

🔘Генерация красивых Mermaid-диаграмм архитектуры (слои и компоненты).

🔘Гибкая настройка порогов качества и паттернов игнорирования файлов прямо в pyproject.toml.

🔘Удобный Python API для использования внутри ваших скриптов + готовые хуки для pre-commit.

🔘Встроенный модульный CLI-интерфейс.

🚀Быстрый старт:
pip install pymetrica

Запуск полного анализа проекта:
pymetrica run-all path/to/project

Генерация архитектурной диаграммы:
pymetrica base-stats --diagram path/to/project


#Python #Pymetrica #StaticAnalysis #Architecture #CodeQuality #DevTools #Metrics #OpenSource

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