Различное поведение flake8 локально и в tox
У меня есть проект, в котором используется tox
. И я бегуflake8
в этом. До сих пор все работало нормально, пока я не решил запустить flake8 на тестах.
Когда я звоню flake8 ./tests
Я получаю какой-то результат. Тогда я смогу это исправить. Теперь у меня в папке с тестами нет никаких предупреждений. Но что-то странное происходит, когда я запускаю его в tox (я на 100% уверен, что такие пакеты, как WPS или isort, имеют те же версии, что и те, которые я использую локально). В основном я получаюisort
предупреждения. Проблема выглядит так:
from freezegun import freeze_time
from foo.bar import baz
Итак, у меня есть сторонний импорт библиотеки над импортом из моей библиотеки. И здесь все хорошо,vscode
с установленным flake8 или запущенным flake8 в терминале оба здесь не дают никаких предупреждений. Проблема, я думаю, в том, чтоfoo
здесь обрабатывается как сторонняя библиотека, поэтому, например, в этом случае flake хочет, чтобы я удалил новую строку между этими двумя.
Я в основном пробовал все (например, pytest-flake8
, но это нехорошо, поскольку он также запускает тесты, которые у меня есть в другом задании tox). Есть ли способ решить эту проблему, потому что из-за этого мои трубопроводы продолжают падать.
PS noqa
Предупреждения IXXX здесь не решение, так как я хочу их, но не неправильным образом, который я представил выше.
PS 2 у меня есть known_first_party=foo
в [isort]
раздел в моем setup.cfg
1 ответ
isort
чувствителен к библиотекам, установленным рядом с ним - это означает, что вам ~ обычно необходимо установить все свои зависимости при его использовании
Я работал над несколькими обходными путями:
-
seed-isort-config
(изначально для предварительной фиксации) - это устанавливаетknown_third_party
в соответствующий список, такой чтоisort
запускать где угодно с любым набором зависимостей, все равно разрешится правильно -
reorder_python_imports
- альтернативный сортировщик импорта, который не страдает ограничениямиisort
(механизм, который приводит в действие это, также тот же механизм, что и классификация импорта вseed-isort-config
)
(отказ от ответственности: я являюсь автором вышеуказанных инструментов, я также flake8
сопровождающий)