Авто-импорт не соответствует 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, чтобы попытаться исправить ошибку. Если это не сработает, напишите отчет об ошибке или создайте пустую строку между вашими утверждениями. Надеюсь, что это ответ на ваш вопрос! О, неважно, используете ли вы использование, импорт или оба типа операторов.