Веб-версияОткрыть в Telegram

Пост‍🐍 Ruff доволен, mypy молчит, тесты зелёные. А в коде четыре одинаковых функции

20 сентября 2026
P
Python Community
Ссылка
нажмите — покажем
‍🐍 Ruff доволен, mypy молчит, тесты зелёные. А в коде четыре одинаковых функции Автор статьи столкнулся с этим в проекте, который писал ИИ-агент. Вместо поиска готовых функций агент добавлял новые копии. Когда понадобилось изменить нормализацию данных, он уже не мог разобраться, какую из четырёх править. Обычные проверки не покрывают всю структуру проекта: * Ruff находит нарушения правил и умеет проверять сложность при соответствующей настройке. * mypy проверяет типы. * pytest проверяет сценарии, для которых написаны тесты. При этом дублирование между файлами, неиспользуемые функции и нарушения архитектурных границ могут остаться незамеченными. Автор предлагает добавить структурный анализ. Его инструмент pyscn ищет дубли, сложные функции, мёртвый код и нарушения правил зависимостей: uvx pyscn analyze . Что полезно забрать в свой проект: * Блокировать в CI новые проблемы, а не сразу весь накопленный техдолг. * Следить за изменением сложности, а не только за общей оценкой. * Закрепить допустимые зависимости между модулями проверяемыми правилами. * Дать агенту запускать анализатор до отправки кода на ревью. Высокая сложность сама по себе ещё не повод переписывать функцию. Иногда длинная последовательность понятных проверок лучше искусственного дробления. Статья — https://codescan.dev/blog/ruff-mypy-pytest-and-then-what @Python_Community_ru
6 · 716 ·

Рядом в ленте

PPython Community🔥 Qwen представила Qwen3.8-Omni-Flash - свою первую мультимодальную модель, изначально заточенную под агентные задачи. Она одновременно работает с видео и аудиоPPython Community‍🐍 В CPython одно чтение `__dict__` может навсегда замедлить доступ к атрибутам конкретного объекта. Начиная с Python 3.11 обычный obj.x часто вообще не делает
это сообщение
PPython Community⚡ Qwen представила Audio 3.1 - единый стек для ASR, TTS и realtime-аудио. Главное: * ASR лучше распознаёт языки и диалекты, убирает повторы и слова-паразиты. * PPython Community⚡️ OmniVoice - открытая модель озвучки с поддержкой более 600 языков. Она умеет клонировать голос по 3–10 секундам записи и озвучивать новый текст этим голосом.

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем