Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

multilint

https://github.com/adamchainz/multilint/workflows/CI/badge.svg?branch=master https://img.shields.io/pypi/v/multilint.svg https://img.shields.io/badge/code%20style-black-000000.svg

Unmaintained: I’m no longer maintaining this package because it’s for Python 2 compatibility and all other projects I’ve used it on are now Python 3 only. If you want to continue maintenance please contact me.


Run multiple python linters easily.

Installation and Usage

Install with pip:

python -m pip install multilint

Run with:

multilint

Python 3.5 to 3.8 supported.

How It Works

I like to keep my projects tidy with a standard set of linters. Running them all turned out to be easier with a wrapper script, which I ended up copy-pasting between them all. This project stops me needing to copy/paste, centralizing running all these neat tools.

In order, it will check if these linters are installed, and if so, run them:

  • Black, to autoformat code

  • Flake8, to check code quality

  • Isort, in ‘diff’ mode to show where imports aren’t sorted

  • Modernize, in ‘diff’ mode to show where python 2/3 compatibility with six is missing

If any of them fail, multilint stops and dies with a non-zero exit code. Otherwise it succeeds!

You need to configure the paths that will be linted (by default, only setup.py is linted). Put a section in your setup.cfg like:

[tool:multilint]
paths = my_package
        tests
        setup.py

You can also pass the paths as arguments to multilint, which will override the settings, like:

multilint path/my_file.py path/folder1

Note: previously multilint supported running setup.py check if you passed a setup.py file. This was removed as the command is deprecated. You should instead use twine check as per the python packaging documentation.

Usage With tox

I normally run my tests with tox. An example tox.ini to use multilint to run your tests on Python 3.5-3.8 and do your linting on Python 3.8 would look like:

[tox]
envlist =
    py{35,36,37,38},
    py38-codestyle

[testenv]
deps = -rrequirements.txt
commands = pytest

[testenv:py38-codestyle]
commands = multilint

Then just put multilint, plus the linters you want it to run (e.g. flake8) in your requirements.txt.

Release files for multilint 5.0.1

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

Source distribution (sdist)

Source distribution for multilint 5.0.1
File Size Uploaded
multilint-5.0.1.tar.gz 7.3 kB Details

Built distribution (wheel)

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

Total release size: 13.0 kB

Release files / multilint-5.0.1.tar.gz

Download URL multilint-5.0.1.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bc9383f2cd21fc7ef434a5fc3be636f23ce3754369daf1d0c4e8cfea3b5d83d3
BLAKE2b-256 checksum
How to use checksums
bdbf608b81a6352e51fb5f289f7d653e9e5fb39755a820e239481a9d22b6cdf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

Release files / multilint-5.0.1-py3-none-any.whl

Download URL multilint-5.0.1-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d964a14b91ed219a2635e71c557d7a026abc30169dc738b1ed99c3315671779
BLAKE2b-256 checksum
How to use checksums
5535803d2030ddb9428f4ddfcc29510b59dfaca1019c3c3ee8db51e19fc6bb88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3
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