Invoking Pylint programmatically

automated-tests, pylint, python

Solution

Take a look at the `pylint/epylint.py` file which contains two different ways to start Pylint programmatically.

You can also simply call

from pylint.lint import Run
Run(['--errors-only', 'myfile.py'])

for instance.

Problem

I'd like to invoke the Pylint checker, limited to the error signalling part, as part of my unit testing. So I checked the Pylint executable script, got to the `pylint.lint.Run` helper class and there I got lost in a quite long `__init__` function, ending with a call to `sys.exit()`. Anybody ever tried and managed to do so? The dream-plan would be this: ``` if __name__ == '__main__': import pylint.lint pylint.lint.something(__file__, justerrors=True) # now continue with unit testing ``` Any hints? Other than "copy the `__init__` method and skip the `sys.exit()`", I mean? I don't need the tests to be run by Pylint, it might as well be `pyflakes` or other software: feel free to suggest alternatives.

Original source