Disable all Pylint warnings for a file Disable all Pylint warnings for a file python python

Disable all Pylint warnings for a file


From the Pylint FAQ:

With Pylint < 0.25, add

# pylint: disable-all

at the beginning of the module.

Pylint 0.26.1 and up have renamed that directive to

# pylint: skip-file

(but the first version will be kept for backward compatibility).

In order to ease finding which modules are ignored a information-level message I0013 is emitted. With recent versions of Pylint, if you use the old syntax, an additional I0014 message is emitted.


Pylint has five "categories" for messages (of which I'm aware).

These categories were very obvious in the past, but the numbered Pylint messages have now been replaced by names. For example, C0302 is now too-many-lines. But the 'C' tells us that too-many-lines is a Convention message. This is confusing, because Convention messages frequently just show up as a warning, since many systems (such as Syntastic) seem to classify everything as either a warning or an error. However, the Pylint report still breaks things down into these categories, so it's still definitely supported.

Your question specifically refers to Warnings, and all Pylint Warning message names start with 'W'.

It was a bit difficult for me to track this down, but this answer eventually led me to the answer. Pylint still supports disabling entire categories of messages. So, to disable all Warnings, you would do:

disable=W

This can be used at the command-line:

$ pylint --disable=W myfile.py

Or, you can put it in your pylintrc file:

[MESSAGES CONTROL]disable=W

Note: you may already have the disable option in your rc file, in which case you should append the 'W' to this list.

Or, you can put it inline in your code, where it will work for the scope into which it is placed:

# pylint: disable=W

To disable it for an entire file, it's best to put it at the very top of the file. However, even at the very top of the file, I found I was still getting the trailing-newlines warning message (technically a convention warning, but I'm getting to that).

In my case, I had a library written by someone from long ago. It worked well, so there was really no need to worry about modern Python convention, etc. All I really cared about were the errors that would likely break my code.

My solution was to disable all the Warning, Convention, and Refactoring messages for this one file only by placing the following Pylint command on the first line:

# pylint: disable=W,C,R

Aside from the aforementioned message for trailing newlines, this did exactly what I needed.


Yes, you can specify # pylint: skip-file in the file, but it is bad practice to disable all warnings for a file.

If you want to disable specific warnings only, this can be done by adding a comment such as # pylint: disable=message-name to disable the specified message for the remainder of the file, or at least until # pylint: enable=message-name.

Example:

# pylint: disable=no-memberclass C123:    def __init__(self):        self.foo_x = self.bar_x# pylint: enable=no-memberclass C456:    def __init__(self):        self.foo_x = self.bar_x