Ignore by directory using Pylint

To ignore subdirectories under a directory tree named 3rdparty, we added the following ignore-patterns entry to the [MASTER] entry in .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

This fixed the problem for Pylint 1.7.1.

We were originally confused by the "base names" clause in the comments. Apparently it does accept paths with wildcards. At least it did for us.


You can not give a path, but only the "basename" of the directory. E.g., use --ignore=lib instead of --ignore-=appengine-toolkit/gaetk/lib.

The problem is you will ignore all directories named lib.


As of right now, --ignore is not working on directories (there's an open issue on GitHub, Ignore clause not ignoring directories #2686).

It turns out that only the file name, and not the whole path is tested against the black list. (As pointed in the same pull request: geajack's comment)

The option --ignore-patterns has the same problem, but there was an attempt to fix it when I checked (Add ignore-paths to match against the full path #3266)

In your case, the best solution right now would be to use a regular expression to match the patterns you want in your files, which was also my case. As I am not really well-versed in regular expressions, I used Regex101, which I recommend.


Adding the following to my .pylintrc files works with Pylint 0.25:

[MASTER]
ignore=migrations

My problems are with PyDev which (it seems) is not respecting my settings. This is due, I think, to the fact that it's running Pylint per-file, which I think bypasses 'ignore' checks - whether for modules/directories or files. The calls to Pylint from PyDev look like:

/path/to/site-packages/pylint/lint.py --include-ids=y /path/to/project/migrations/0018_migration.py

Tags:

Python

Pylint