Ruff module-import-not-at-top-of-file (E402)
module-import-not-at-top-of-file в Ruff проверяет случаи, когда импорты расположены не в начале файла.
Почему это неправильно
Согласно PEP 8, "импорты всегда должны находиться в начале файла — сразу после комментариев модуля и docstring, перед глобальными переменными и константами".
Это улучшает читаемость кода, упрощает управление зависимостями и делает структуру файла предсказуемой.
Исключения составляют изменения sys.path (например, sys.path.insert, sys.path.append и т. д.) и изменения os.environ между импортами.
Пример ошибки
"One string"
"Two string"
a = 1
import os
from sys import x
Как правильно
import os
from sys import x
"One string"
"Two string"
a = 1
Поведение в Jupyter Notebook
Для Jupyter Notebook это правило проверяет, чтобы импорты находились в начале ячейки.