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

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

Сайт: https://pythonomania.github.io/
Download Telegram
📱Sqlfluff.

SQLFluff — это гибкий и настраиваемый SQL линтер(автоматизированный процесс анализа кода и поиска потенциальных ошибок), поддерживающий различные диалекты.

✅SQLFluff автоматически исправляет большинство ошибок линтинга, позволяя вам сосредоточиться на действительно важных задачах.

❗️Хотя SQL довольно последователен в своих реализациях, существует несколько диалектов с различиями в синтаксисе и грамматике. SQLFluff в настоящее время поддерживает множество диалектов SQL (возможно, не в полном объёме).

#SQLFluff #SQL #Python #Линтер #Linter #Программирование #БазыДанных #Диалект #БД

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

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%).

🔘Интеграция с Flake8: Инструмент работает как плагин для линтера. При проверке кода он автоматически выдаст предупреждение, если найдет перегруженный класс:
example.py:1:1: H601 class has low cohesion

🔧Установка:

pip 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
2⚡3👍3🔥3