# Pylint Processor
## Purpose
Lints Python source files using [pylint](https://pylint.readthedocs.io/).
## How It Works
Discovers `.py` files in the project (excluding common non-source directories),
runs `pylint` on each file, and creates a stub file on success.
A non-zero exit code from pylint fails the product.
This processor supports batch mode, allowing multiple files to be checked in a
single pylint invocation for better performance.
If a `.pylintrc` file exists in the project root, it is automatically added as an
extra input so that configuration changes trigger rebuilds.
## Source Files
- Input: `**/*.py`
- Output: none (checker — a passing check is recorded in the cache, no file is written)
## Configuration
```toml
[processor.checker.pylint]
args = [] # Additional arguments to pass to pylint
dep_inputs = [] # Additional files that trigger rebuilds (e.g. ["pyproject.toml"])
```
| `args` | string[] | `[]` | Extra arguments passed to pylint |
| `dep_inputs` | string[] | `[]` | Extra files whose changes trigger rebuilds |
| `output_depends_on_input_name` | bool | `true` | Key cached results by file path as well as content, because pylint derives the module name and import resolution from the path. A renamed file is re-checked instead of reusing its old verdict. See [`output_depends_on_input_name`](../../configuration.md) |
## Batch support
The tool accepts multiple files on the command line. When batching is enabled (default), rsconstruct passes all files in a single invocation for better performance.
## Clean behavior
This processor is a Checker — `rsconstruct clean outputs` is a no-op for it (checkers produce no outputs). See [Clean behavior](../../processors.md#clean-behavior) and [`rsconstruct clean`](../../commands.md#rsconstruct-clean).