Авто-импорт не соответствует PEP8
Рассмотрим следующий код:
from bs4 import BeautifulSoup
data = "<test>test text</test>"
soup = BeautifulSoup(data)
print(soup.find(text=re.compile(r'test$')))
Отсутствует строка import re
и с ней будет NameError
без нее.
Теперь я пытаюсь использовать PyCharm
Функция автоматического импорта: фокусировка на re
и нажатие Alt+Enter
, который открывает следующее всплывающее окно:
![enter image description here]()
Теперь, если я выберу параметр Import 're'
, Pycharm введет новую строку импорта в начало script:
import re
from bs4 import BeautifulSoup
data = "<test>test text</test>"
soup = BeautifulSoup(data)
print(soup.find(text=re.compile(r'test$')))
Выглядит почти хорошо, за исключением того, что он не следует Правила импорта PEP8:
Импорт должен быть сгруппирован в следующем порядке:
-
импорт стандартной библиотеки
-
Связанный импорт третьей стороны
-
Локальный импорт приложений/библиотек
Вы должны поместить пустую строку между каждой группой импорта.
Другими словами, между двумя импортами отсутствует пробел:
import re
from bs4 import BeautifulSoup
Вопрос: можно ли описать Pycharm следовать рекомендациям PEP8 и вставить новую строку между строками с разными типами импорта при авто-импорт?
В качестве обходного пути я вызываю Оптимизировать импорт, после чего правильно упорядочивает импорт.
Ответы
Ответ 1
Вы не можете. Причина заключается в том, что PyCharm не говорит вам о том, что вы нарушили какие-либо инструкции PEP8, если вы делаете это или какие-либо импортные заявления вообще. Во-первых, ваш PyCharm устарел (новейшая версия 4.0.2/4.2) или, во-вторых, у вашего PyCharm, похоже, есть ошибка, что дает основание для файла отчета об ошибке. Если вы можете попытаться безопасно загрузить PyCharm, чтобы попытаться исправить ошибку. Если это не сработает, напишите отчет об ошибке или создайте пустую строку между вашими утверждениями. Надеюсь, что это ответ на ваш вопрос! О, неважно, используете ли вы использование, импорт или оба типа операторов.