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
GitHub
GitHub - pylint-dev/pylint-pytest: A Pylint plugin to suppress pytest-related false positives.
A Pylint plugin to suppress pytest-related false positives. - pylint-dev/pylint-pytest
🔥6👍4
Deply — это автономный инструмент на Python для контроля архитектурных паттернов и зависимостей в крупных Python проектах. Он анализирует структуру кода и зависимости, чтобы гарантировать соблюдение архитектурных правил. Это способствует созданию более чистого, модульного и поддерживаемого кода.
#Python #Programming #SoftwareArchitecture #CleanCode #Deply #DependencyManagement #CodeQuality
https://github.com/Vashkatsi/deply
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - Vashkatsi/deply: Keep your python architecture clean.
Keep your python architecture clean. Contribute to Vashkatsi/deply development by creating an account on GitHub.
🔥3👍2
Ruff — это ультрабыстрый линтер и форматтер кода, написанный на Rust. Он в 10-100 раз быстрее, чем Flake8 и Black, и поддерживает Python 3.13.
💡 Ruff заменяет Flake8 (и десятки плагинов), Black, isort, pydocstyle, autoflake, pyupgrade — и делает это в разы быстрее!
#Python #Ruff #Linting #Black #Flake8 #CodeQuality #PyDev #RustLang
https://github.com/astral-sh/ruff
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - astral-sh/ruff: An extremely fast Python linter and code formatter, written in Rust.
An extremely fast Python linter and code formatter, written in Rust. - astral-sh/ruff
👍2🔥2
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
complexipy — это библиотека для анализа когнитивной сложности Python-кода. Написана на Rust, с поддержкой CLI, Python API, GitHub Actions, VSCode и pre-commit-хуков.
Это метрика, которая оценивает, насколько сложно человеку понять код. В отличие от цикломатической сложности, она учитывает вложенность, ветвления и общее когнитивное восприятие.
#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
GitHub
GitHub - rohaquinlop/complexipy: Blazingly fast cognitive complexity analysis for Python, written in Rust.
Blazingly fast cognitive complexity analysis for Python, written in Rust. - rohaquinlop/complexipy
1🔥23 13👍6
Transfunctions — это Python-библиотека, которая позволяет из одного шаблона создавать синхронные, асинхронные и генераторные функции.
С помощью шаблонов вы пишете логику один раз и генерируете сразу несколько версий:
@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()
#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
GitHub
GitHub - mutating/transfunctions: Say NO to Python fragmentation on sync and async
Say NO to Python fragmentation on sync and async. Contribute to mutating/transfunctions development by creating an account on GitHub.
1🔥3👍2 2
pyscn — это инструмент для глубокого структурного анализа Python-кода, созданный на Go с использованием tree-sitter.
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
📚 Документация: 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
GitHub
GitHub - ludo-technologies/pyscn: Code quality analysis for Python in the age of AI coding.
Code quality analysis for Python in the age of AI coding. - ludo-technologies/pyscn
1⚡3👍3
Code Spy — это инструмент для Python-разработчиков, который следит за изменениями в вашем проекте и автоматически запускает нужные проверки и задачи.
Представьте: вы сохраняете файл — а Code Spy сам запускает MyPy, Pylint, Pytest, Black или даже перезапускает dev-сервер. Вам не нужно переключаться в терминал, вручную запускать команды или следить, что что-то забыли проверить. Всё происходит автоматически.
Вы просто указываете путь к проекту, настраиваете задачи — и 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
GitHub
GitHub - joegasewicz/code-spy: Watches for file changes & runs tasks against your Python code.
Watches for file changes & runs tasks against your Python code. - joegasewicz/code-spy
1⚡3 2 2
Bandit — это инструмент для поиска распространенных проблем безопасности в Python-коде. Он анализирует каждый файл, строит из него AST(Abstract Syntax Tree) и запускает соответствующие плагины для проверки узлов дерева. После сканирования всех файлов Bandit генерирует подробный отчет.
#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
GitHub
GitHub - PyCQA/bandit: Bandit is a tool designed to find common security issues in Python code.
Bandit is a tool designed to find common security issues in Python code. - PyCQA/bandit
1⚡2🔥2
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
Pymetrica — это мощный инструмент статического анализа, который вычисляет метрики программной инженерии для проектов на Python.
С помощью парсинга абстрактного синтаксического дерева (AST), инструмент оценивает классические показатели качества: сложность, удобство сопровождения и стабильность архитектуры.
Pymetrica не просто считает строки кода. Инструмент выделяется тем, что группирует метрики по слоям архитектуры (на основе структуры директорий) и может генерировать наглядные схемы связей в формате Mermaid.
int, str, dict) вместо доменно-специфичных абстракций (классов/моделей).pyproject.toml.pre-commit.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
GitHub
GitHub - JuanJFarina/pymetrica: Pymetrica is a Python static analysis tool that computes software engineering metrics such as Cyclomatic…
Pymetrica is a Python static analysis tool that computes software engineering metrics such as Cyclomatic Complexity, Halstead Volume, and Maintainability Cost. It analyzes code using the Python AST...
1👍4🔥3
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