Skip to main content
https://github.com/PyCQA/pylint/actions/workflows/ci.yaml/badge.svg?branch=main https://coveralls.io/repos/github/PyCQA/pylint/badge.svg?branch=main Pypi Package version Documentation Status https://img.shields.io/badge/code%20style-black-000000.svg pre-commit.ci status

Tidelift

Professional support for pylint is available as part of the Tidelift Subscription. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.

Pylint

It’s not just a linter that annoys you!

Pylint is a Python static code analysis tool which looks for programming errors, helps enforcing a coding standard, sniffs for code smells and offers simple refactoring suggestions.

It’s highly configurable, having special pragmas to control its errors and warnings from within your code, as well as from an extensive configuration file. It is also possible to write your own plugins for adding your own checks or for extending pylint in one way or another.

It’s a free software distributed under the GNU General Public Licence unless otherwise specified.

Development is hosted on GitHub: https://github.com/PyCQA/pylint/

You can use the code-quality@python.org mailing list to discuss about Pylint. Subscribe at https://mail.python.org/mailman/listinfo/code-quality/ or read the archives at https://mail.python.org/pipermail/code-quality/

Pull requests are amazing and most welcome.

Install

Pylint can be simply installed by running:

pip install pylint

If you are using Python 3.6+, upgrade to get full support for your version:

pip install pylint --upgrade

If you want to install from a source distribution, extract the tarball and run the following command

python setup.py install

Do make sure to do the same for astroid, which is used internally by pylint.

For debian and rpm packages, use your usual tools according to your Linux distribution.

More information about installation and available distribution format can be found here.

Documentation

The documentation lives at https://pylint.pycqa.org/.

Pylint is shipped with following additional commands:

  • pyreverse: an UML diagram generator

  • symilar: an independent similarities checker

  • epylint: Emacs and Flymake compatible Pylint

Testing

We use tox and pytest-benchmark for running the test suite. You should be able to install it with:

pip install tox pytest pytest-benchmark

To run the test suite for a particular Python version, you can do:

tox -e py37

To run individual tests with tox, you can do:

tox -e py37 -- -k name_of_the_test

We use pytest for testing pylint, which you can use without using tox for a faster development cycle.

If you want to run tests on a specific portion of the code with pytest, (pytest-cov) and your local python version:

# ( pip install pytest-cov )
# Everything:
python3 -m pytest tests/
# Everything in tests/message with coverage for the relevant code:
python3 -m pytest tests/message/ --cov=pylint.message
coverage html
# Only the functional test "missing_kwoa_py3":
python3 -m pytest "tests/test_functional.py::test_functional[missing_kwoa_py3]"

Do not forget to clone astroid and install the last version:

git clone https://github.com/PyCQA/astroid.git

# From source
python3 astroid/setup.py build sdist
pip3 install astroid/dist/astroid*.tar.gz

# Using an editable installation
cd astroid
python3 -m pip install -e .

For more detailed information, check the documentation.

License

pylint is, with a few exceptions listed below, GPLv2.

The icon files are licensed under the CC BY-SA 4.0 license:

Metadata

Release files for pylint 2.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylint 2.12.0
File Size Uploaded
pylint-2.12.0.tar.gz 344.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pylint 2.12.0
File Interpreter ABI Platform
pylint-2.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 758.1 kB

Release files / pylint-2.12.0.tar.gz

Download URL pylint-2.12.0.tar.gz
Size 344.2 kB
Tags Source
SHA-256 checksum
How to use checksums
245c87e5da54c35b623c21b35debf87d93b18bf9e0229515cc172d0b83d627cd
BLAKE2b-256 checksum
How to use checksums
54ba8a6d70d630a7f95c38c763c2482db76e68fab5d31d210059a2dc30167d56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / pylint-2.12.0-py3-none-any.whl

Download URL pylint-2.12.0-py3-none-any.whl
Size 413.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba00afcb1550bc217bbcb0eb76c10cb8335f7417a3323bdd980c29fb5b59f8d2
BLAKE2b-256 checksum
How to use checksums
9f12e8d2c14a59c8e0045a2efd8d1ef774fd93e8b94ddc987aa8402b94efd21d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

4.1.2

2 release files

4.1.1

2 release files

4.0.10

2 release files

4.0.9

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.3.9

2 release files

3.3.8

2 release files

3.3.7

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.17.7

2 release files

2.17.6

2 release files

2.17.5

2 release files

2.17.3

2 release files

2.17.1

2 release files

2.16.2

2 release files

2.15.9

2 release files

2.15.7

2 release files

2.15.6

2 release files

2.15.5

2 release files

2.15.4

2 release files

2.15.3

2 release files

2.15.0

2 release files

2.14.5

2 release files

2.14.4

2 release files

2.14.3

2 release files

2.14.2

2 release files

2.13.9

2 release files

2.13.7

2 release files

2.13.6

2 release files

2.13.4

2 release files

2.13.3

2 release files

2.13.2

2 release files

2.13.1

2 release files

2.13.0

2 release files

2.12.1

2 release files

This release

2.12.0 This release

2 release files

2.11.1

2 release files

2.11.0

2 release files

2.10.2

2 release files

2.10.1

2 release files

2.10.0

2 release files

2.9.6

2 release files

2.9.5

2 release files

2.9.4

2 release files

2.9.3

2 release files

2.9.2

2 release files

2.9.1

2 release files

2.9.0

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.2

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

1 release file

1.3.0

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.28.0

1 release file

0.27.0

1 release file

0.26.0

1 release file

0.25.2

1 release file

0.25.1

1 release file

0.25.0

1 release file

0.24.0

1 release file

0.23.0

1 release file

0.22.0

1 release file

0.21.3

1 release file

0.21.2

1 release file

0.21.1

1 release file

0.21.0

1 release file

0.20.0

1 release file

0.19.0

1 release file

0.18.1

1 release file

0.18.0

1 release file

0.16.0

1 release file

0.15.2

1 release file

0.14.0

0.13.0

0.12.1

0.11.0

0.10.0

0.8.1

0.7.0

0.6.1

0.6.0

0.4.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page