Flake8 - как исключить все файлы из проекта, перечислив каждый файл? - PullRequest
0 голосов
/ 22 января 2019

Я настраиваю flake8 на устаревшей базе кода Python.Моя идея состояла в том, чтобы явно перечислить имена всех .py файлов, представленных в форме, подобной этой:

[flake8]
files_to_ignore = 
  foo.py,
  bar.py,
  spam.py

Затем, при запуске flake8 в проекте, он пройдет, потому что нетфайлы для запуска.Затем мы исправляем один файл и исключаем его из списка, что означает, что он будет проверен линтером.Затем процесс повторяется для каждого существующего файла.

Однако я не вижу способа исключить все файлы, перечислив их явным образом из чтения документов.Существует --exclude=<patterns>, но при этом игнорируются все файлы (я не смогу фильтровать файлы по именам).

Я обнаружил, что можно игнорировать весь файл, добавив строку # flake8: noqaна пустой строке.Это мой единственный выбор для достижения того, чего я хочу?

1 Ответ

0 голосов
/ 22 января 2019

Существует --exclude=<patterns>, но при этом игнорируются все файлы (я не смогу фильтровать файлы по именам).

Одно имя файла - это шаблон , шаблон, который соответствует только одному имени файла.Значение по умолчанию для exclude - .svn,CVS,.bzr,.hg,.git,__pycache__,.tox, которое представляет собой последовательность буквальных имен файлов и каталогов.

Просто перечислите имена файлов в качестве исключенных шаблонов, так как вы удаляете отдельные имена из списка, которым они будутпроверено.

flake8 сначала проверяется базовое имя файла (без пути), затем абсолютный путь к каждому шаблону.Если ваши имена файлов не уникальны (отображаются в нескольких местах в вашем файловом дереве), то перед файлами следует указать относительный путь проекта с префиксом */;поэтому в следующем дереве

project/
├── bar
│   ├── __init__.py
│   └── example.py
├── example.py
└── foo
    ├── __init__.py
    └── example.py

шаблоны */project/example.py, */project/foo/example.py и */project/bar/example.py точно соответствуют 3 отдельным example.py файлам.

...