Yet Another Linter Aggregator
Project description
YALA combines many linters to improve the quality of your code. Other projects may come to your mind, but does anyone have all the features below?
- Works with latest linters
Yala uses linters’ outputs and doesn’t break when their APIs change.
- Same defaults
No changes to linters’ default configuration.
- Easy to configure
Set any command-line option for any linter (even pylint!) in setup.cfg.
- Fast
Run linters in parallel.
Current Status
For now, the supported Python linters are: isort, Pylint, Pycodestyle and Pydocstyle. There’s also an optional support for mypy: if it is installed, it will be automatically detected and used.
Install
Tested with Python >= 3.5.
sudo pip3 install --upgrade yala
If you are willing to hack yala’s code, run the command below in this README’s folder:
sudo pip3 install --editable .[dev]
Usage
Just call yala followed by the files and/or folders to lint.
Configuration
Besides the configuration of each linter, as in their docs, you can specify other options in setup.cfg.
It’s possible to define command line arguments for linters in setup.cfg, which is particularly useful for pylint, a linter that ignores this file and requires you to write an extra one only for itself.
The default configuration file is yala/setup.cfg that you can copy and customize.
You can have this file in upper directories and override it in lower directories if needed.
Linters’ options
For example, to disable a specific pylint warning and output grades C and lower for Radon Maintainability Index (default is D or worse), add the following to setup.cfg:
[yala]
pylint args = --disable=TODO
Besides pylint, you can define CLI options for isort, pycodestyle and pydocstyle (the names are exactly as they are called in command line).
Choosing linters
Default linters are: isort, pycodestyle, pydocstyle, pylint, radon (cc/mi). Optionals are: pyflakes and mypy (you need to install them manually).
You can customize the linters in setup.cfg by either:
[yala]
linters = isort, pycodestyle
or
[yala]
linters =
isort
pycodestyle
Or even a mix of both: multiple linters in multiple lines.
Hacking: Adding a linter
Check the file yala/linters.py and feel free to ask for help.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.