Pylint жалуется при импорте в правильном порядке - PullRequest
0 голосов
/ 31 мая 2018

Я думал, что правильный порядок импорта в 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 Ответ

0 голосов
/ 01 июня 2018

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

Это выглядит лучше, но позволяет упускать из виду определенный импорт после длинных общих списков.И это также отделяет общий и специфический импорт от одного и того же модуля, что плохо для ИМО:

import yaml
from xtesting.core import testcase
from yaml import safe_load
...