======= Pylint ======= As you would launch the command line ------------------------------------ You can use the ``run_pylint`` function, which is the same function called by the command line (using ``sys.argv``). You can supply arguments yourself: .. sourcecode:: python from pylint import run_pylint run_pylint(argv=["--disable=line-too-long", "myfile.py"]) Recover the result in a stream ------------------------------ You can also use ``pylint.lint.Run`` directly if you want to do something that can't be done using only pylint's command line options. Here's the basic example: .. sourcecode:: python from pylint.lint import Run Run(argv=["--disable=line-too-long", "myfile.py"]) With ``Run`` it is possible to invoke pylint programmatically with a reporter initialized with a custom stream: .. sourcecode:: python from io import StringIO from pylint.lint import Run from pylint.reporters.text import TextReporter pylint_output = StringIO() # Custom open stream reporter = TextReporter(pylint_output) Run(["test_file.py"], reporter=reporter, exit=False) print(pylint_output.getvalue()) # Retrieve and print the text report The reporter can accept any stream object as as parameter. In this example, the stream outputs to a file: .. sourcecode:: python from pylint.lint import Run from pylint.reporters.text import TextReporter with open("report.out", "w") as f: reporter = TextReporter(f) Run(["test_file.py"], reporter=reporter, exit=False) This would be useful to capture pylint output in an open stream which can be passed onto another program. If your program expects that the files being linted might be edited between runs, you will need to clear pylint's inference cache: .. sourcecode:: python from pylint.lint import pylinter pylinter.MANAGER.clear_cache()