Skip to main content

Run multiple python linters easily

Project description

multilint

https://img.shields.io/pypi/v/multilint.svg https://img.shields.io/travis/adamchainz/multilint.svg

Run multiple python linters easily.

Installation and Usage

Install with pip:

pip install multilint

Run with:

multilint

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 is these linters are installed, and if so, run them:

  • Run flake8, for code quality

  • Run isort in ‘diff’ mode, for import sorting

  • Run modernize in ‘diff’ mode, for python 2/3 compatibility

  • Run python setup.py check, to ensure that your setup.py is well configured. This will require docutils, and maybe Pygments if your long_description uses any code highlighting.

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:

[multilint]
paths = my_package
        tests
        setup.py

Usage with tox

I normally run my tests with tox. An example tox.ini to use multilint to do all your linting would be:

[tox]
envlist =
    py{27,35},
    py{27,35}-codestyle

[testenv]
deps = -rrequirements.txt
commands = py.test

[testenv:py27-codestyle]
commands = multilint

[testenv:py35-codestyle]
commands = multilint

Just put multilint, flake8, etc. in your requirements.txt and they’ll automatically run.

History

Pending

  • New notes here

1.0.2 (2016-07-26)

  • Work with flake8 3.0+ which changed the way its main function worked.

1.0.1 (2016-07-16)

  • Fix modernize running on Python 2.

  • Run isort in the same Python process rather than with subprocess

  • Properly gate flake8 and isort so that they run only if they are installed.

1.0.0 (2016-06-19)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multilint-1.0.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

multilint-1.0.2-py2.py3-none-any.whl (6.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file multilint-1.0.2.tar.gz.

File metadata

  • Download URL: multilint-1.0.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for multilint-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0cf96ff4960e9b1136eac091d49f4007b08038d1422bce2c5cf9bf9d22d48734
MD5 e0a247cbdc15d61146bdfe1e93183eb6
BLAKE2b-256 958cf835138df72f7989f584460fd0c2b1ee81a099695609f471551b68a3eacc

See more details on using hashes here.

File details

Details for the file multilint-1.0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for multilint-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dea1a9a1315ff9026d25e77340b3c5e1946006f49e863d96d1862061018a07d5
MD5 4e79ec012840cbf01dab36a217857642
BLAKE2b-256 726b4ae0af7037cfa34364349f5d2e8ef02b9972628d3ff4857ac2bd26418544

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page