Рассмотрим следующий код:
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
, который открывает следующее всплывающее окно:
Теперь, если я выберу параметр 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 и вставить новую строку между строками с разными типами импорта при авто-импорт?
В качестве обходного пути я вызываю Оптимизировать импорт, после чего правильно упорядочивает импорт.