Ответ
isort — это утилита для Python, которая автоматически сортирует и форматирует импорты в коде. Она группирует их по типу (стандартная библиотека, сторонние пакеты, локальные модули) и упорядочивает в алфавитном порядке, что значительно улучшает читаемость кода.
isort и black (автоформаттер кода) часто используются вместе для обеспечения единого стиля кода. black отвечает за форматирование всего кода, кроме импортов, оставляя эту задачу для isort.
Настройка совместной работы
Для их бесконфликтной работы достаточно указать для isort профиль совместимости с black в файле pyproject.toml.
Пример конфигурации в pyproject.toml:
[tool.isort]
profile = "black"
line_length = 88 # Устанавливаем ту же длину строки, что и у black
[tool.black]
line_length = 88
Порядок использования
Рекомендуется запускать isort перед black, чтобы сначала отсортировать импорты, а затем отформатировать остальной код.
# 1. Сортировка импортов во всем проекте
isort .
# 2. Форматирование кода
black .
Такой подход автоматизирует поддержание чистоты и консистентности кодовой базы, снижая количество споров о стиле в команде.
Ответ 18+ 🔞
А, ну вот, опять про эти ваши инструменты для причёсывания кода. isort, говоришь? Ну это такая штука, которая в твоих питоновских файлах импорты по полочкам раскладывает, чтоб не было как в бардаке у хронического распиздяя.
Она их, сука, по типам раскидывает: вот это из стандартной библиотеки, это — сторонние пакеты, которые ты накачал, а это — твои собственные, доморощенные модули. И всё это, блядь, в алфавитном порядке строит. Читать потом — одно удовольствие, а не пиздец.
Обычно её в паре с black используют. Black — это такой упоротый автоформаттер, который весь код под одну гребёнку ровняет. Но он, хитрая жопа, импорты специально не трогает, оставляет это безобразие на откуп isort. Умно, да? Разделение труда, ёпта.
Как их подружить, чтобы не дрались
Чтобы они друг другу не мешали, как два кота в одном мешке, надо в конфиге pyproject.toml прописать isort, что он должен работать в режиме совместимости с этим самым black.
Вот смотри, как в pyproject.toml это выглядит:
[tool.isort]
profile = "black"
line_length = 88 # Ставим такую же длину строки, как у black, чтоб не было разногласий
[tool.black]
line_length = 88
Как этим хозяйством пользоваться
Порядок, блядь, важен! Сначала всегда гони isort, чтобы он импорты прибрал, а потом уже запускай black, который всё остальное отутюжит.
Вот команды, которые надо в терминале впиздюрить:
# 1. Пусть isort всё прочёшет и отсортирует
isort .
# 2. А теперь black доведёт до блеска
black .
Делай так — и в твоём коде будет идеальный порядок, волнение ебать ноль. Никаких споров в команде, какой стиль лучше. Всё решено за тебя, сиди и радуйся.