52

以下は、Pylintのドキュメントからのものです。

--ignore=<file>
    Add <file or directory> to the black list. It should be a 
    base name, not a path. You may set this option multiple 
    times. [current: %default]

それでも、ディレクトリ部分を機能させることができません。

django-south移行ファイルがあるmigrationsというディレクトリがあります。--ignore =migrationsと入力しても、 migrationsディレクトリ内のファイルにエラー/警告が表示され続けます。

それ--ignoreはディレクトリに対して機能していないのでしょうか?

無視されたファイルに一致する正規表現を使用することさえできれば、django-southファイルはすべて0001_something、0002_something ...という名前であるため、機能します。


ディレクトリによる無視を機能させることができなかったので、# pylint: disable-msg-cat=WCREFIすべてのPylintエラー、警告、および情報を無視する、各移行ファイルの上に単に置くことに頼りました。

4

9 に答える 9

41

.pylintrcファイルに以下を追加すると、 Pylint0.25で機能します。

[MASTER]
ignore=migrations

私の問題は、(どうやら)私の設定を尊重していないPyDevにあります。これは、ファイルごとにPylintを実行しているためだと思います。これは、モジュール/ディレクトリまたはファイルのいずれの場合でも、「無視」チェックをバイパスすると思います。PyDevからPylintへの呼び出しは次のようになります。

/path/to/site-packages/pylint/lint.py --include-ids=y /path/to/project/migrations/0018_migration.py
于 2011-12-08T06:40:23.453 に答える
14

、という名前のディレクトリツリーの下にあるサブディレクトリを無視するために、のエントリに次のエントリ3rdpartyを追加しました。ignore-patterns[MASTER].pylintrc

# Add files or directories matching the regex patterns to the blacklist. The
# regex matches against base names, not paths.
# Ignore all .py files under the 3rdparty subdirectory.
ignore-patterns=**/3rdparty/**/*.py

これにより、Pylint1.7.1の問題が修正されました。

コメントの「ベース名」句に最初は混乱していました。どうやらそれはワイルドカードを使ったパスを受け入れます。少なくともそれは私たちのためになりました。

于 2018-08-31T23:10:54.923 に答える
12

パスを指定することはできませんが、ディレクトリの「ベース名」のみを指定できます。たとえば、--ignore=libの代わりに使用し--ignore-=appengine-toolkit/gaetk/libます。

問題は、という名前のすべてのディレクトリを無視することですlib

于 2015-09-09T13:07:27.677 に答える
10

現在、--ignoreはディレクトリで機能していません(GitHubに未解決の問題があり、ディレクトリを無視しない句を無視する#2686)。

パス全体ではなく、ファイル名のみがブラックリストに対してテストされていることがわかります。(同じプルリクエストで指摘されているように:geajackのコメント

オプション--ignore-patternsにも同じ問題がありますが、チェックしたときに修正しようとしました(フルパス#3266と一致するように追加ignore-paths

あなたの場合、現時点での最善の解決策は、正規表現を使用してファイルに必要なパターンを一致させることです。これも私の場合です。私は正規表現にあまり精通していないので、私がお勧めするRegex101を使用しました。

于 2020-04-10T02:30:31.147 に答える
3

実際、Pylint 2.3.1には、未解決の問題があります。

ディレクトリをignoreオプションに設定すると、無視されません。

于 2019-10-14T12:18:46.417 に答える
2

Pylint 2.9以降ignore-paths、ベース名ではなくパス全体に対して正規表現と一致する新しい構成ディレクトリがあります。

参照:

于 2021-05-28T09:04:39.407 に答える
1

モンキーパッチを適用する必要があるようです。これは、Pylintバージョン2.5.3で機能します。Pylintにパスを無視するための修正がない理由がわかりません。

これを.pylintrcファイルに追加します。

init-hook=
    sys.path.append(os.getcwd());
    from pylint_ignore import PylintIgnorePaths;
    PylintIgnorePaths('my/thirdparty/subdir', 'my/other/badcode')

次に、ファイルpylint_ignore.pyを作成します。

from pylint.utils import utils


class PylintIgnorePaths:
    def __init__(self, *paths):
        self.paths = paths
        self.original_expand_modules = utils.expand_modules
        utils.expand_modules = self.patched_expand

    def patched_expand(self, *args, **kwargs):
        result, errors = self.original_expand_modules(*args, **kwargs)

        def keep_item(item):
            if any(1 for path in self.paths if item['path'].startswith(path)):
                return False

            return True

        result = list(filter(keep_item, result))

        return result, errors
于 2020-10-19T20:21:22.113 に答える
1

Fabienの答えに加えて、--ignore-paths構文は次のようになります。

ignore-paths=^src/experiments/.*$,
             ^src/ingredients/.*$,
             ^src/scripts/.*$,
             ^src/tests/.*$

https://github.com/PyCQA/pylint/issues/2686#issuecomment-864585778

于 2021-10-18T16:00:13.020 に答える
-2

その後、Bash拡張を有利に使用できます。

--ignore=migrations/{0000..1000}_something
于 2010-03-24T07:57:11.393 に答える