| .. _faq: | 
 |  | 
 | ========================== | 
 | Frequently Asked Questions | 
 | ========================== | 
 |  | 
 | How do I install Pylint? | 
 | ------------------------ | 
 |  | 
 | .. include:: short_text_installation.rst | 
 |  | 
 | How do I contribute to Pylint? | 
 | ------------------------------ | 
 |  | 
 | .. include:: short_text_contribute.rst | 
 |  | 
 |  | 
 | Does Pylint follow a versioning scheme? | 
 | ---------------------------------------- | 
 |  | 
 | See :ref:`upgrading pylint in the installation guide <upgrading_pylint>`. | 
 |  | 
 | How do I find the name corresponding to a specific command line option? | 
 | ----------------------------------------------------------------------- | 
 |  | 
 | See :ref:`the configuration documentation <all-configurations-options>`. | 
 |  | 
 | What is the format of the configuration file? | 
 | --------------------------------------------- | 
 |  | 
 | The configuration file can be an ``ini`` or ``toml`` file. See the :ref:`exhaustive list of possible options <all-options>`. | 
 |  | 
 | How to disable a particular message? | 
 | ------------------------------------ | 
 |  | 
 | Read :ref:`message-control` for details and examples. | 
 |  | 
 | Pylint gave my code a negative rating out of ten. That can't be right! | 
 | ---------------------------------------------------------------------- | 
 |  | 
 | Prior to Pylint 2.13.0, the score formula used by default had no lower | 
 | bound. The new default score formula is :: | 
 |  | 
 |     max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)) | 
 |  | 
 | If your project contains a configuration file created by an earlier version of | 
 | Pylint, you can set ``evaluation`` to the above expression to get the new | 
 | behavior. Likewise, since negative values are still technically supported, | 
 | ``evaluation`` can be set to a version of the above expression that does not | 
 | enforce a floor of zero. | 
 |  | 
 | How do I avoid getting unused argument warnings for API I do not control? | 
 | ------------------------------------------------------------------------- | 
 |  | 
 | Prefix (ui) the callback's name by `cb_` (callback), as in cb_onclick(...). By | 
 | doing so arguments usage won't be checked. Another solution is to | 
 | use one of the names defined in the "dummy-variables" configuration | 
 | variable for unused argument ("_" and "dummy" by default). | 
 |  | 
 |  | 
 | Why are there a bunch of messages disabled by default? | 
 | ------------------------------------------------------ | 
 |  | 
 | Either because they are prone to false positives or that they are opinionated enough | 
 | to not be included as default messages. | 
 |  | 
 | You can see the plugin you need to explicitly :ref:`load in the technical reference | 
 | <user_guide/checkers/extensions:optional checkers>`. | 
 |  | 
 | I want to run pylint on each keystroke in my IDE. How do I do that? | 
 | --------------------------------------------------------------------- | 
 |  | 
 | Pylint full suite of checks will never be fast enough to run on every keystroke. | 
 | However, some IDEs can run pylint  when the IDE opens or saves files. | 
 | See, for example, the `Microsoft plugin for VS Code`_. | 
 |  | 
 |  | 
 | That said, pylint is best suited for linting on save for small projects, for continuous | 
 | integration jobs, or a git ``pre-push`` hook for big projects. The larger your repository | 
 | is, the slower pylint will be. | 
 |  | 
 | If you want to make pylint faster for this type of use case, you can use the ``--errors-only`` | 
 | option, which will remove all the refactor, convention, and warning checks. You can also disable | 
 | checks with inherently high complexity that need to analyse the full code base like | 
 | ``duplicate-code`` or ``cyclic-import`` (this list is not exhaustive). | 
 |  | 
 | .. _`Microsoft plugin for VS Code`: https://github.com/microsoft/vscode-pylint#readme | 
 |  | 
 | Why do I have non-deterministic results when I try to parallelize pylint ? | 
 | -------------------------------------------------------------------------- | 
 |  | 
 | pylint should analyse all your code at once in order to best infer the | 
 | actual values that result from calls. If only some of the files are given, pylint might | 
 | miss a particular value's type and produce inferior inference for the subset. Parallelization | 
 | of pylint is not easy; we also discourage the use of the ``-j`` option if this matters to you. | 
 |  | 
 |  | 
 | Which messages should I disable to avoid duplicates if I use other popular linters ? | 
 | ------------------------------------------------------------------------------------ | 
 |  | 
 | pycodestyle_: bad-indentation, bare-except, line-too-long, missing-final-newline, multiple-statements, singleton-comparison, trailing-newlines, trailing-whitespace, unnecessary-negation, unnecessary-semicolon, wrong-import-position | 
 |  | 
 | pyflakes_: undefined-variable, unused-import, unused-variable | 
 |  | 
 | mccabe_: too-many-branches | 
 |  | 
 | pydocstyle_: missing-module-docstring, missing-class-docstring, missing-function-docstring | 
 |  | 
 | pep8-naming_: invalid-name, bad-classmethod-argument, bad-mcs-classmethod-argument, no-self-argument | 
 |  | 
 | isort_ and flake8-import-order_: ungrouped-imports, wrong-import-order | 
 |  | 
 | .. _`pycodestyle`: https://github.com/PyCQA/pycodestyle | 
 | .. _`pyflakes`: https://github.com/PyCQA/pyflakes | 
 | .. _`mccabe`: https://github.com/PyCQA/mccabe | 
 | .. _`pydocstyle`: https://github.com/PyCQA/pydocstyle | 
 | .. _`pep8-naming`: https://github.com/PyCQA/pep8-naming | 
 | .. _`isort`: https://github.com/pycqa/isort | 
 | .. _`flake8-import-order`: https://github.com/PyCQA/flake8-import-order | 
 |  | 
 | How do I avoid "access to undefined member" messages in my mixin classes? | 
 | ------------------------------------------------------------------------- | 
 |  | 
 | You should add the ``no-member`` message to your ``ignored-checks-for-mixins`` option | 
 | and name your mixin class with a name which ends with "Mixin" or "mixin" (default) | 
 | or change the default value by changing the ``mixin-class-rgx`` option. | 
 |  | 
 | Where is the persistent data stored to compare between successive runs? | 
 | ----------------------------------------------------------------------- | 
 |  | 
 | Analysis data are stored as a pickle file in a directory which is | 
 | localized using the following rules: | 
 |  | 
 | * value of the PYLINTHOME environment variable if set | 
 | * "pylint" subdirectory of the user's XDG_CACHE_HOME if the environment variable is set, otherwise | 
 |     - Linux: "~/.cache/pylint" | 
 |     - macOS: "~/Library/Caches/pylint" | 
 |     - Windows: "C:\Users\<username>\AppData\Local\pylint" | 
 | * ".pylint.d" directory in the current directory | 
 |  | 
 | How does the website pylint dot org relate to this project? | 
 | ----------------------------------------------------------- | 
 |  | 
 | Historically, pylint dot org served as the primary website for Pylint. However, | 
 | we no longer have access to the domain. The current owners are monetizing | 
 | this by displaying advertisements alongside outdated documentation without | 
 | contributing to pylint at all. For the latest and official Pylint documentation, | 
 | please visit `pylint.readthedocs.io <https://pylint.readthedocs.io/en/stable/>`_. | 
 |  | 
 | Please see `issue 8934 <https://github.com/pylint-dev/pylint/issues/8934>`_ | 
 | for more details. |