Заставить isort распознавать импорт из приложений Django как импорт от первого лица

#python #django #isort

#python #django #isort

Вопрос:

Я работаю над проектом со многими различными приложениями Django.

Я хочу использовать isort в этом проекте, но импорт из приложений Django ( from myapp1.mymodule import myfunction ) рассматривается isort как импорт сторонних производителей.

Как я могу заставить isort распознавать их как импорт от первого лица?

Я мог бы добавить в isort конфигурацию (в .cfg ): known_first_party=myapp1,myapp2... но мне придется поддерживать этот список.

Есть ли лучший способ?

Ответ №1:

Вы можете использовать src_paths опцию для указания папки проекта. Вам не нужно поддерживать known_first_party список. Связанный исходный код (https://github.com/PyCQA/isort/blob/5.6.4/isort/place.py#L63-L95 ) :

 if (
    _is_module(module_path)
    or _is_package(module_path)
    or _src_path_is_module(src_path, root_module_name)
):
    return (sections.FIRSTPARTY, f"Found in one of the configured src_paths: {src_path}.")