While searching through a Python project, I found a few lines commented with # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
What does noqa mean in Python? Is it specific to Python only?
While searching through a Python project, I found a few lines commented with # noqa.
import sys
sys.path.append(r'C:\dev')
import some_module # noqa
What does noqa mean in Python? Is it specific to Python only?
It's generally used in Python code to ignore PEP8 warnings.
Lines with #noqa at the end will be ignored by linter programs and won't raise any warnings.
You know what? Even Guido van Rossum (the creator of Python) asked this question before :D
It used to be "nopep8" but when Flake8 and Pep8 wanted a common qualifier @florentx suggested "NoQA" as in "No Quality Assurance" (iirc) and it stuck.
Some basic usages of # noqa (with flake8):
# flake8: noqa: files that contain this line are skipped# noqa comment at the end: will not issue warnings# noqa: <error>, e.g., # noqa: E234 at the end: ignore specific errors on a line
Came here after finding a # noqa directive in a library that I was working with. Having never heard of it, I naturally arrived here after searching on Google. The answers provided here are adequate but I wanted to provide some further elaboration for those that may be curious (I certainly was)
# noqa has evolved from the # nopep8 syntax used in previous
releases of flake8
# noqa is supported by IDEs, like PyCharm, for use with their
built-in code inspection tools.
# noqa can be used as a pre-commit directive, such that prior to new
commits an inspection process must complete
# noqa can be used to ignore all warnings or given specific warnings
to ignore. For example, # noqa: F401 will ignore an unused
imported module warning.
As an example, consider the following code:
import os
print("Hello, world!")
This code imports the os module but doesn't use it. If one wanted to use the # noqa tool to suppress a PEP8 warning, it could be written as such:
import os # noqa
print("Hello, world!")
This will ignore all warnings. However, if one were only to want to ignore a specific warning (PEP8 F401 imported but not used), it could be done as such:
import os # noqa: F401
print("Hello, world!")
I've published an article with some noqa examples and more elaboration on the above points.