Pull to refresh

Comments 19

По слухам кучу проверок в Ruff надо отключать сразу, потому что они могут вообще код сломать вам. Не сталкивались с таким?

А слухи сообщают какую-то конкретику? я вот наоборот все включаю и только потом отключаю, причем отключаю спорные, а не те, которые код ломают, навскидку такие сейчас уже и не вспомню.

Там из коробки включено очень мало правил. Перед тем чтобы они что-то проверили - их нужно будет в конфигурации включить. Плюс есть большая и понятная табличка, какие правила стабильные, какие в эксперементальном режиме, какие считаются устаревшими.

Есть очень сомнительные правила вроде требования включать "if TYPE_CHECKING" которые могут сломать рантайм, хотя тайпчекер будет думать что всё ок.

С pydantic была такая проблема, он аннотации обрабатывает. Не помню как решилась. Толи поправили, толи я что-то в конфиги прописал. Сейчас рабочая машина далеко, чтобы посмотреть.

Баги в ruff бывают, но обычно фиксятся быстро.

А ещё есть отличные полезные проверки типа удаления неиспользуемых имортов, которые ломают сгенрированный grpc код, но это уже камень в сторону grpc

Я бы советовал посмотреть список правил на сайте и выбрать те, что нравятся. По умолчанию там включено мало. Код ничего ломать без автофикса не будет.

Вот с автофиксом правил нужно аккуратно -- он действительно может ломать код и это касается не только ruff, но и любых других линтеров.

Я включаю всё. Если репортится, что-то что мне не нравится, то потом отключаю. С автофиксами и небезопасными автофиксами.

Пока полет нормальный. Перед попаданием в про я сам смотрю на изменения, ревью от коллег, юнит тесты гоняются и "интеграционные" тесты на препроде.

Начались одинаковые статьи про ruff и uv, ничего нового. Всё таки хотелось бы более глубокого анализа этих инструментов.

Спасибо! понял, буду глубже копать. Тут отдельно по статье просится для каждого инструмента. Изначально эта статья задумывалась про 10 полезных инструментов, но слишком большая получилась. Разбиваю на несколько.

Просто попробуйте. Я уже перевёл свои активные проекты и всё работает.

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

Ruff задумывался, чтобы повторить опыт существующих инструментов. Устоявшиеся правила, новые кейсы хорошо описаны в доках.

Uv это прямо целый продукт, который заменяет много инструментов. Он сейчас активно развивается. Проблемы возможно уйдут, и новые кейсы появятся.

real 0m3.254s
real 0m0.142s

а на что вы потом тратите сэкономленные 3 секунды?

На больших проектах с пачкой плагинов flake8 может спокойно и 30 секунд отрабатывать и минуту, а ruff останется так же вменяемым по времени ответа.
Плюс такие мелкие куски времени решают в прекоммит-хуках и на нагрузку ci-cd воркеров для больших компаний.

Вы ещё pylint не пробовали. И у него тоже есть плагины. Ruff поддерживает только часть его проверок.

)) С++ компилим. да, на самом деле stepalxser все верно написал.

Sign up to leave a comment.