ty — это новый статический анализатор и language server для Python, написанный на Rust.
#Python #TypeChecker #RustPython #TyChecker #StaticAnalysis #uvx #PythonTools #Программирование #PythonДляНовичков #МолниеносныйPython #RuffTools
https://github.com/astral-sh/ty
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - astral-sh/ty: An extremely fast Python type checker and language server, written in Rust.
An extremely fast Python type checker and language server, written in Rust. - astral-sh/ty
2👍2🔥1 1
Skylos — это инструмент статического анализа кода на Python, который вычищает мёртвый код.
# Установка
pip install skylos
# Анализ проекта
skylos /path/to/project
# Режим с выбором — удалить только то, что хочешь
skylos --interactive
# Предпросмотр изменений без удаления
skylos --dry-run
#Python #DeadCode #StaticAnalysis #OpenSource #Refactoring #CLI #Skylos #DevTools #PyPI #Rustless
https://github.com/duriantaco/skylos
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - duriantaco/skylos: Open source local-first PR scanner that finds dead code, security bugs, secrets, quality regressions…
Open source local-first PR scanner that finds dead code, security bugs, secrets, quality regressions, and AI-code mistakes before merge. For first timers refer to https://duriantaco.github.io/skylo...
1⚡2 2👍1
ahocorasick_rs — это Python-обёртка над высокопроизводительной библиотекой на Rust aho-corasick, предназначенная для поиска сразу нескольких паттернов в строке. Работает быстрее и эффективнее, чем pyahocorasick.
import ahocorasick_rs
patterns = ["hello", "world"]
text = "hello world, hello!"
ac = ahocorasick_rs.AhoCorasick(patterns)
print(ac.find_matches_as_strings(text))
# ['hello', 'world', 'hello']
#Python #Rust #AhoCorasick #Regex #StaticAnalysis #DevTools #Search #PyPI #PythonTips #OpenSource #FastCode #TextProcessing #ahocorasick_rs
https://github.com/G-Research/ahocorasick_rs
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - G-Research/ahocorasick_rs: Check for multiple patterns in a single string at the same time: a fast Aho-Corasick algorithm…
Check for multiple patterns in a single string at the same time: a fast Aho-Corasick algorithm for Python - G-Research/ahocorasick_rs
1 6⚡2🔥2 1
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
Hexora — инструмент для поиска вредоносных и опасных паттернов в Python-проектах. Подходит для:
# Проверка файла
hexora audit test.py
# Проверка директории
hexora audit resources/test/
# Использование в Python
import hexora
results = hexora.audit_path("resources/test/")
#Python #Security #StaticAnalysis #SupplyChain #CyberSecurity #Hexora #DevSecOps #OpenSource #MalwareDetection #CodeAudit
https://github.com/rushter/hexora
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - rushter/hexora: Static analysis of malicious Python code
Static analysis of malicious Python code. Contribute to rushter/hexora development by creating an account on GitHub.
1👍3 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
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
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
Lifeguard — это быстрый инструмент статического анализа, созданный для безопасного внедрения «ленивых» импортов (Lazy Imports) в Python-проектах.
Обычно в Python каждый
import выполняется моментально при чтении файла. Ленивые импорты откладывают реальную загрузку модуля до момента первого обращения к импортированному имени. Это радикально снижает потребление памяти и ускоряет запуск приложений, особенно в огромных кодовых базах с глубоким деревом зависимостей.Перевести старый код на ленивые импорты вслепую не выйдет — часть логики обязательно сломается. Например, проблемы возникнут, если:
sys.modules, ожидая, что предыдущие импорты уже выполнились.__init_subclass__.Найти все такие места в большом проекте вручную практически невозможно.
Инструмент (написанный на Rust) параллельно анализирует AST-дерево ваших исходников и выявляет все несовместимые паттерны. Lifeguard максимально консервативен: если он не может программно доказать, что модуль безопасен для ленивого импорта, он помечает его как небезопасный. Стабильность продакшена здесь ставится выше микрооптимизаций.
LAZY_ELIGIBLE (полностью безопасные модули) и LOAD_IMPORTS_EAGERLY (модули-исключения). В будущем (в Python 3.15) этот JSON можно будет использовать в качестве фильтра для функции importlib.util.lazy_import, чтобы управлять импортами автоматически.Находится в стадии беты и готовится к выходу Python 3.15 (уже протестирован на версиях 3.12 и 3.14). Сейчас для работы требуется Rust (nightly) и запуск через
cargo run, но разработчики уже готовят пакет для PyPI и готовые GitHub Actions.#Python #Rust #LazyImports #PEP810 #StaticAnalysis #DevTools #Backend #Оптимизация
https://github.com/facebook/Lifeguard
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - facebook/Lifeguard: Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead…
Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead for Lazy Imports in Python - facebook/Lifeguard
1🔥4⚡3
Cohesion — это инструмент статического анализа для измерения связанности (когезии) классов в Python.
В программировании cohesion (связанность) определяет, насколько сильно методы и переменные внутри одного модуля или класса логически подходят друг другу. Как писал Роберт Мартин в книге «Чистый код»: «Когда связанность высока, это означает, что методы и переменные класса зависят друг от друга и составляют единое логическое целое».
Cohesion проверяет, как именно методы класса используют переменные этого класса (как уровня класса, так и уровня экземпляра
self), и выводит процентную оценку для каждого из них.Пример отчета (
cohesion --files example.py --verbose):Class: ExampleClass1
Function: func1 -> Использует 2 из 3 переменных (66.67%)
Function: func2 -> Использует 1 из 3 переменных (33.33%)
Function: func3 -> Использует 0 из 3 переменных (0.00%)
Total (Общая связанность класса): 33.33%
Если общая оценка слишком низкая, это явный сигнал о том, что класс делает слишком много разных вещей и его пора разбивать (нарушен принцип Single Responsibility).
--below и --above позволяют отфильтровать вывод (например, подсветить только те классы, у которых связанность ниже 50%).example.py:1:1: H601 class has low cohesionpip install cohesion
#Python #CleanCode #Cohesion #Refactoring #Flake8 #Linter #DevTools #StaticAnalysis #OpenSource
https://github.com/mschwager/cohesion
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mschwager/cohesion: A tool for measuring Python class cohesion.
A tool for measuring Python class cohesion. Contribute to mschwager/cohesion development by creating an account on GitHub.
2⚡3👍3🔥3