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 это правило проверяет, чтобы импорты находились в начале ячейки.