pylint-runner 0.7.0
Run pylint recursively on all py files in current and sub-directories
License: MIT
Requires Python: >=3.7

pylint_runner
=============

.. image:: https://github.com/MasterOdin/pylint_runner/actions/workflows/test.yml/badge.svg?branch=master&event=push
    :target: https://github.com/MasterOdin/pylint_runner/actions/workflows/test.yml?query=event%3Apush+branch%3Amaster
    :alt: Test Suite
.. image:: https://codecov.io/gh/MasterOdin/pylint_runner/branch/master/graph/badge.svg?token=7YcKpPbLXl
    :target: https://codecov.io/gh/MasterOdin/pylint_runner
    :alt: Coverage Status
.. image:: https://img.shields.io/pypi/v/pylint_runner.svg
    :target: https://pypi.python.org/pypi/pylint_runner/
    :alt: PyPI Version
.. image:: https://img.shields.io/pypi/pyversions/pylint_runner.svg
    :target: https://pypi.python.org/pypi/pylint_runner/
    :alt: Supported Python Versions
.. image:: https://img.shields.io/github/license/MasterOdin/pylint_runner.svg
    :target: https://github.com/MasterOdin/pylint_runner/blob/master/LICENSE
    :alt: License

A simple pylint application that scans the current directory and any sub-directories recursively,
then runs pylint on all discovered `.py` files.

Dependencies
------------

- Python 3.5+
- `colorama <https://pypi.org/project/colorama/>`_
- `pylint <https://pypi.org/project/pylint/>`_
- `pytest <https://pypi.org/project/pytest/>`_ (for testing)

Installation
------------

Preferred installation method::

    pip install pylint_runner

From source::

    python setup.py install

When installed, this will create an executable `pylint_runner`, `pylint_runner#`, and `pylint_runner#.#`
where the first # represents the major version of Python (2 or 3) and the second # represents the minor
version of Python. So if installed by Python 2.7, you will have available `pylint_runner`, `pylint_runner2`,
and `pylint_runner2.7` so as to allow usage by however many installed versions of python on the system as
pylint is version dependent on its output (due to using the Python AST).

Usage
-----

::

    pylint_runner

Output is standard pylint output. There should be no output if no issues were found.

In case of issues, you should see output similar to::

    ************* Module foo.bar
    C: 24, 0: Missing function docstring (missing-docstring)
    ************* Module tests.foo_tester
    C: 19, 0: Final newline missing (missing-final-newline)
    C: 19, 0: Invalid constant name "a" (invalid-name)

Additional Arguments

See the standard help ouput::

    pylint_runner -h

**NOTE:** Unused options and arguments will be passed directly to pylint. For example,
doing `pylint_runner -d C0103 -d E0602` will cause `pylint -d C0103 -d E0602` on each file.

Verbose mode
------------
::

    pylint_runner -v

Verbose mode lists all files that were found for testing immediately, along with the pylint output.

This will generate (if run against this repo)::

    Using pylint 1.6.5 for python 2.7.11
    pylint running on the following files:
    - pylint_runner/__init__.py
    - pylint_runner/main.py
    - setup.py
    - tests/__init__.py
    - tests/test_runner.py
    - tests/tests/dummy.py

    ************* Module tests.test_runner
    I:  1, 0: Locally disabling missing-docstring (C0111) (locally-disabled)

rcfile
------

This allows you to specify a pylintrc file to be used using `--rcfile path\_to\_file`.

It may be a relative, or absolute path and defaults to `.pylintrc` at the current working directory.

It will read the value of `ignore` from the rcfile and ignore any matching files/folders while building the list of
files to pass to python.

It will also pass that rcfile for use by pylint.