Configuring flake8

It is possible to incorporate flake8 results in the TICS output for files. flake8 is a collection of Python linters.

Prerequisites

For a successful flake8 integration, the following prerequisites must be met:

Basic configuration

By default, TICS attempts to find flake8 on the PATH. Alternatively, a specific Python interpreter and/or a specific flake8 instance can be used.

The configuration for flake8 can be added to either the SERVER.txt to apply them for all projects, or in PROJECTS.txt to enable project-specific settings. If the properties are declared in the SERVER file and also in the PROJECT file, the project-specific properties will override the global properties.

Syntax

The following properties can (optionally) be declared, either on SERVER or PROJECT level:

'TOOLS' => {
  'flake8' => {
    'EXECUTABLE' => '/path/to/flake8',
    'INTERPRETER' => '/path/to/python',
    'INSTALLDIR' => '/path/to/directory'
  }
}

Specifying a flake8 executable

The EXECUTABLE property can be used to specify the location of the flake8 executable. This property is optional. In general, it is only necessary to specify an executable if it cannot be found on the PATH. Alternatively, the INSTALLDIR property can be used to specify a directory containing flake8.

When specifying a location for flake8, such as /usr/bin/flake8, it will be executed with the default Python interpreter. In some cases, this may not be desirable. For instance, when the default interpreter is Python 2.x, while the code that is being analyzed is aimed at Python 3.x. In this case, the interpreter can be configured through the INTERPRETER property.

Specifying a Python interpreter

The INTERPRETER property can be used to specify the path to a Python interpreter, such as /usr/bin/python. If this property is not set, the default Python interpreter will be used.

Note that the Python interpreter has an effect on the violations that are produced by flake8. It is recommended to use the interpreter in which the project is supposed to run.

Specifying an installation dir

As an alternative to specifying a flake8 executable and/or Python interpreter, an installation directory can be set through the INSTALLDIR property. This installation directory can either be a full Python installation containing flake8, or a virtual environment with access to flake8.

The installation directory can be specified either as an absolute path (e.g., /usr/local/python), or as a relative path from the chk directory (e.g., flake8).