Pylint жалуется при импорте в правильном порядке
Я думал, что правильный порядок импорта в Python был описан первым ответом на вопрос: как правильно сортировать Python `import x` и` из операторов x import y`?
Следовательно, этот код должен быть правильным:
import os
import time
import yaml
from collections import OrderedDict
from xtesting.core import testcase
Однако, когда я запускаю Pylint, я получаю:
C: 5, 0: standard import "from collections import OrderedDict" should be placed before "import yaml" (wrong-import-order)
Так что я думаю, что yaml не является стандартной библиотекой. Тогда должен ли быть правильный способ сделать это (даже если он уродливее и менее читабелен)?
import os
import time
from collections import OrderedDict
import yaml
from xtesting.core import testcase
1 ответ
PyYAML не является частью стандартной библиотеки Python и импортирует из стандартной библиотеки, будь то универсальный (import os
) или конкретный (from collections import OrderedDict
) должен прийти первым.
IMO, вы должны лексикографически отсортировать имена модулей в разделах и отделить разделы пустой строкой:
from collections import OrderedDict
import os
import time
from xtesting.core import testcase
import yaml
Есть некоторые, которые хотят, чтобы общие в каждом разделе были на первом месте:
import os
import time
from collections import OrderedDict
import yaml
from xtesting.core import testcase
Это выглядит лучше, но позволяет упростить просмотр определенных импортов после длинных общих списков. И это также отделяет общий и специфический импорт от одного и того же модуля, что IMO плохо:
import yaml
from xtesting.core import testcase
from yaml import safe_load