| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- Metadata-Version: 2.1
- Name: pylint
- Version: 2.17.6
- Summary: python code static checker
- Author-email: Python Code Quality Authority <code-quality@python.org>
- License: GPL-2.0-or-later
- Project-URL: Docs: User Guide, https://pylint.readthedocs.io/en/latest/
- Project-URL: Source Code, https://github.com/pylint-dev/pylint
- Project-URL: homepage, https://github.com/pylint-dev/pylint
- Project-URL: What's New, https://pylint.readthedocs.io/en/latest/whatsnew/2/
- Project-URL: Bug Tracker, https://github.com/pylint-dev/pylint/issues
- Project-URL: Discord Server, https://discord.com/invite/Egy6P8AMB5
- Project-URL: Docs: Contributor Guide, https://pylint.readthedocs.io/en/latest/development_guide/contributor_guide/index.html
- Keywords: static code analysis,linter,python,lint
- Classifier: Development Status :: 6 - Mature
- Classifier: Environment :: Console
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
- Classifier: Operating System :: OS Independent
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Topic :: Software Development :: Debuggers
- Classifier: Topic :: Software Development :: Quality Assurance
- Classifier: Topic :: Software Development :: Testing
- Requires-Python: >=3.7.2
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- License-File: CONTRIBUTORS.txt
- Requires-Dist: platformdirs (>=2.2.0)
- Requires-Dist: astroid (<=2.17.0-dev0,>=2.15.7)
- Requires-Dist: isort (<6,>=4.2.5)
- Requires-Dist: mccabe (<0.8,>=0.6)
- Requires-Dist: tomlkit (>=0.10.1)
- Requires-Dist: typing-extensions (>=3.10.0) ; python_version < "3.10"
- Requires-Dist: dill (>=0.2) ; python_version < "3.11"
- Requires-Dist: tomli (>=1.1.0) ; python_version < "3.11"
- Requires-Dist: dill (>=0.3.6) ; python_version >= "3.11"
- Requires-Dist: colorama (>=0.4.5) ; sys_platform == "win32"
- Provides-Extra: spelling
- Requires-Dist: pyenchant (~=3.2) ; extra == 'spelling'
- Provides-Extra: testutils
- Requires-Dist: gitpython (>3) ; extra == 'testutils'
- `Pylint`_
- =========
- .. _`Pylint`: https://pylint.readthedocs.io/
- .. This is used inside the doc to recover the start of the introduction
- .. image:: https://github.com/pylint-dev/pylint/actions/workflows/tests.yaml/badge.svg?branch=main
- :target: https://github.com/pylint-dev/pylint/actions
- .. image:: https://codecov.io/gh/pylint-dev/pylint/branch/main/graph/badge.svg?token=ZETEzayrfk
- :target: https://codecov.io/gh/pylint-dev/pylint
- .. image:: https://img.shields.io/pypi/v/pylint.svg
- :alt: Pypi Package version
- :target: https://pypi.python.org/pypi/pylint
- .. image:: https://readthedocs.org/projects/pylint/badge/?version=latest
- :target: https://pylint.readthedocs.io/en/latest/?badge=latest
- :alt: Documentation Status
- .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
- :target: https://github.com/ambv/black
- .. image:: https://img.shields.io/badge/linting-pylint-yellowgreen
- :target: https://github.com/pylint-dev/pylint
- .. image:: https://results.pre-commit.ci/badge/github/pylint-dev/pylint/main.svg
- :target: https://results.pre-commit.ci/latest/github/pylint-dev/pylint/main
- :alt: pre-commit.ci status
- .. image:: https://bestpractices.coreinfrastructure.org/projects/6328/badge
- :target: https://bestpractices.coreinfrastructure.org/projects/6328
- :alt: CII Best Practices
- .. image:: https://img.shields.io/ossf-scorecard/github.com/PyCQA/pylint?label=openssf%20scorecard&style=flat
- :target: https://api.securityscorecards.dev/projects/github.com/PyCQA/pylint
- :alt: OpenSSF Scorecard
- .. image:: https://img.shields.io/discord/825463413634891776.svg
- :target: https://discord.gg/qYxpadCgkx
- :alt: Discord
- What is Pylint?
- ---------------
- Pylint is a `static code analyser`_ for Python 2 or 3. The latest version supports Python
- 3.7.2 and above.
- .. _`static code analyser`: https://en.wikipedia.org/wiki/Static_code_analysis
- Pylint analyses your code without actually running it. It checks for errors, enforces a
- coding standard, looks for `code smells`_, and can make suggestions about how the code
- could be refactored.
- .. _`code smells`: https://martinfowler.com/bliki/CodeSmell.html
- Install
- -------
- .. This is used inside the doc to recover the start of the short text for installation
- For command line use, pylint is installed with::
- pip install pylint
- Or if you want to also check spelling with ``enchant`` (you might need to
- `install the enchant C library <https://pyenchant.github.io/pyenchant/install.html#installing-the-enchant-c-library>`_):
- .. code-block:: sh
- pip install pylint[spelling]
- It can also be integrated in most editors or IDEs. More information can be found
- `in the documentation`_.
- .. _in the documentation: https://pylint.readthedocs.io/en/latest/user_guide/installation/index.html
- .. This is used inside the doc to recover the end of the short text for installation
- What differentiate Pylint?
- --------------------------
- Pylint is not trusting your typing and is inferring the actual value of nodes (for a
- start because there was no typing when pylint started off) using its internal code
- representation (astroid). If your code is ``import logging as argparse``, Pylint
- can check and know that ``argparse.error(...)`` is in fact a logging call and not an
- argparse call. This makes pylint slower, but it also let pylint find more issues if
- your code is not fully typed.
- [inference] is the killer feature that keeps us using [pylint] in our project despite how painfully slow it is.
- - `Realist pylint user`_, 2022
- .. _`Realist pylint user`: https://github.com/charliermarsh/ruff/issues/970#issuecomment-1381067064
- pylint, not afraid of being a little slower than it already is, is also a lot more thorough than other linters.
- There is more checks, some opinionated one that are deactivated by default, but can be enabled using configuration.
- How to use pylint
- -----------------
- Pylint isn't smarter than you: it may warn you about things that you have
- conscientiously done or check for some things that you don't care about.
- During adoption, especially in a legacy project where pylint was never enforced,
- it's best to start with the ``--errors-only`` flag, then disable
- convention and refactor message with ``--disable=C,R`` and progressively
- re-evaluate and re-enable messages as your priorities evolve.
- Pylint is highly configurable and permits to write plugins in order to add your
- own checks (for example, for internal libraries or an internal rule). Pylint also has an
- ecosystem of existing plugins for popular frameworks and third party libraries.
- .. note::
- Pylint supports the Python standard library out of the box. Third-party
- libraries are not always supported, so a plugin might be needed. A good place
- to start is ``PyPI`` which often returns a plugin by searching for
- ``pylint <library>``. `pylint-pydantic`_, `pylint-django`_ and
- `pylint-sonarjson`_ are examples of such plugins. More information about plugins
- and how to load them can be found at `plugins`_.
- .. _`plugins`: https://pylint.readthedocs.io/en/latest/development_guide/how_tos/plugins.html#plugins
- .. _`pylint-pydantic`: https://pypi.org/project/pylint-pydantic
- .. _`pylint-django`: https://github.com/PyCQA/pylint-django
- .. _`pylint-sonarjson`: https://github.com/omegacen/pylint-sonarjson
- Advised linters alongside pylint
- --------------------------------
- Projects that you might want to use alongside pylint include ruff_ (**really** fast,
- with builtin auto-fix, and a growing number of checks taken from popular
- linters but implemented in ``rust``) or flake8_ (faster and simpler checks with very few false positives),
- mypy_, pyright_ or pyre_ (typing checks), bandit_ (security oriented checks), black_ and
- isort_ (auto-formatting), autoflake_ (automated removal of unused imports or variables),
- pyupgrade_ (automated upgrade to newer python syntax) and pydocstringformatter_ (automated pep257).
- .. _ruff: https://github.com/charliermarsh/ruff
- .. _flake8: https://github.com/PyCQA/flake8
- .. _bandit: https://github.com/PyCQA/bandit
- .. _mypy: https://github.com/python/mypy
- .. _pyright: https://github.com/microsoft/pyright
- .. _pyre: https://github.com/facebook/pyre-check
- .. _black: https://github.com/psf/black
- .. _autoflake: https://github.com/myint/autoflake
- .. _pyupgrade: https://github.com/asottile/pyupgrade
- .. _pydocstringformatter: https://github.com/DanielNoord/pydocstringformatter
- .. _isort: https://pycqa.github.io/isort/
- Additional tools included in pylint
- -----------------------------------
- Pylint ships with two additional tools:
- - pyreverse_ (standalone tool that generates package and class diagrams.)
- - symilar_ (duplicate code finder that is also integrated in pylint)
- .. _pyreverse: https://pylint.readthedocs.io/en/latest/pyreverse.html
- .. _symilar: https://pylint.readthedocs.io/en/latest/symilar.html
- .. This is used inside the doc to recover the end of the introduction
- Contributing
- ------------
- .. This is used inside the doc to recover the start of the short text for contribution
- We welcome all forms of contributions such as updates for documentation, new code, checking issues for duplicates or telling us
- that we can close them, confirming that issues still exist, `creating issues because
- you found a bug or want a feature`_, etc. Everything is much appreciated!
- Please follow the `code of conduct`_ and check `the Contributor Guides`_ if you want to
- make a code contribution.
- .. _creating issues because you found a bug or want a feature: https://pylint.readthedocs.io/en/latest/contact.html#bug-reports-feedback
- .. _code of conduct: https://github.com/pylint-dev/pylint/blob/main/CODE_OF_CONDUCT.md
- .. _the Contributor Guides: https://pylint.readthedocs.io/en/latest/development_guide/contribute.html
- .. This is used inside the doc to recover the end of the short text for contribution
- Show your usage
- -----------------
- You can place this badge in your README to let others know your project uses pylint.
- .. image:: https://img.shields.io/badge/linting-pylint-yellowgreen
- :target: https://github.com/pylint-dev/pylint
- Learn how to add a badge to your documentation in the `the badge documentation`_.
- .. _the badge documentation: https://pylint.readthedocs.io/en/latest/user_guide/installation/badge.html
- License
- -------
- pylint is, with a few exceptions listed below, `GPLv2 <https://github.com/pylint-dev/pylint/blob/main/LICENSE>`_.
- The icon files are licensed under the `CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0/>`_ license:
- - `doc/logo.png <https://raw.githubusercontent.com/pylint-dev/pylint/main/doc/logo.png>`_
- - `doc/logo.svg <https://raw.githubusercontent.com/pylint-dev/pylint/main/doc/logo.svg>`_
- Support
- -------
- Please check `the contact information`_.
- .. _`the contact information`: https://pylint.readthedocs.io/en/latest/contact.html
- .. |tideliftlogo| image:: https://raw.githubusercontent.com/pylint-dev/pylint/main/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png
- :width: 200
- :alt: Tidelift
- .. list-table::
- :widths: 10 100
- * - |tideliftlogo|
- - 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.
- .. _Tidelift Subscription: https://tidelift.com/subscription/pkg/pypi-pylint?utm_source=pypi-pylint&utm_medium=referral&utm_campaign=readme
|