PyCharm не проверяет весь файл?

Можно ли отключить проверку всего файла в PyCharm?

Причина, по которой это необходимо, заключается в работе с py.test. Он использует фикстуры, которые, по-видимому, затеняют параметры функции и в то же время вызывают неразрешенные ссылки. например.:

from myfixtures import user  # Unused import statement warning

def test_is_awesome(user):  # Shadows name 'user' from outer scope warning
    assert user.is_awesome()

Есть и другие предупреждения от py.test, например, использование pytest.raises() вызывает «Не удается найти ссылку« поднимает »» в pytest.py.

Может быть, есть другой способ исправить эти проблемы? Может быть, я неправильно использую py.test?


person gak    schedule 09.04.2014    source источник


Ответы (3)


Можно ли отключить проверку всего файла в PyCharm?

Да. Этот ответ предназначен только для этого вопроса (а не о "Может быть, есть другой способ решить эти проблемы? Может быть, я неправильно использую py.test?").

  1. "Настройки | Области"
  2. Создайте новую область, которая будет включать такие «нежелательные» файлы.
  3. "Настройки | Инспекции"
  4. Найти «проблемную» инспекцию
  5. Щелкните правой кнопкой мыши и выберите «Добавить область действия».
  6. Отключить эту проверку для этой конкретной области

В качестве альтернативы (может работать, а может и нет: зависит от фактической проверки... и я не уверен, действительно ли это работает в PyCharm таким образом — к сожалению, я сам не являюсь пользователем PyCharm)

  1. Alt + Enter, когда курсор стоит на месте ошибки/предупреждения в вашем коде
  2. Выберите правильную запись из появившегося всплывающего меню
  3. С помощью клавиши Стрелка вправо развернуть подменю
  4. Найдите опцию «Подавить проверку».

Вот как это выглядит в PhpStorm (на скриншоте показана опция «подавить для оператора», а не «подавить для всего файла»):

введите здесь описание изображения

Связано: https://stackoverflow.com/a/20803118/783119

person LazyOne    schedule 09.04.2014
comment
Спасибо. Это очень удобно, так как вы можете поделиться этими настройками через систему управления версиями. - person gak; 10.04.2014

Чтобы ответить на вопрос «Может быть, я неправильно использую py.test?» вопрос:

Импорт приборов — не лучший вариант для подражания. Вместо этого лучше поместить фикстуры в файл conftest.py того пакета, которому они нужны. Если фикстура используется в двух пакетах, просто поместите conftest.py в их родительский каталог и поместите туда фикстуру. Это должно избавиться от неиспользуемых предупреждений об импорте и затенении.

Что касается проблемы с пространством имен pytest.raises, я не думаю, что в настоящее время есть решение. Это то, от чего страдает и pylint (и я думаю, что есть попытка создать плагин py.test для решения этих проблем). Поэтому я думаю, что в конце концов линтеру все же нужно будет немного узнать о py.test.

person flub    schedule 09.04.2014

Я обнаружил, что проверка каждого оператора:

    ...
    # noinspection PyUnusedLocal
    instance = mommy.make(Contact)

в начале файла подавил его для всего файла:

# noinspection PyUnusedLocal
from django.urls import reverse
person hum3    schedule 25.02.2018
comment
Использование сборки PyCharm 2020.2 (Professional Edition) № PY-202.6397.98, созданной 27 июля 2020 г. и поставившей # noinspection PyUnusedLocal в качестве самой первой строки файла, кажется, работает для меня, но файл представляет собой автоматически сгенерированный файл настроек для jupyter. . Все строки являются комментариями или закомментированы по умолчанию, но для одной настройки я отредактировал где-то посередине. Как только комментарии будут удалены, это будет следующее утверждение. После редактирования большего количества строк эти более поздние строки отображаются как имеющие проблему. - person hlongmore; 20.08.2020