Skip to main content
API for declaring a flake8 lint aspect that visits py_library rules. Typical usage: First, fetch the flake8 package via your standard requirements file and pip calls. Then, declare a binary target for it, typically in tools/lint/BUILD.bazel:
Finally, create the linter aspect, typically in tools/lint/linters.bzl:

Function: flake8_action

Run flake8 as an action under Bazel. Based on https://flake8.pycqa.org/en/latest/user/invocation.html

Parameters

unknown
required
Bazel Rule or Aspect evaluation context
unknown
required
label of the flake8 program
unknown
required
python files to be linted
unknown
required
label of the flake8 config file (setup.cfg, tox.ini, or .flake8)
unknown
required
output file containing stdout of flake8
unknown
default:"None"
output file containing exit code of flake8 If None, then fail the build when flake8 exits non-zero.
unknown
default:"[]"
additional command-line options, see https://flake8.pycqa.org/en/latest/user/options.html

Function: lint_flake8_aspect

A factory function to create a linter aspect. Attrs: binary: a flake8 executable. Can be obtained from rules_python like so: load(“@rules_python//python/entry_points:py_console_script_binary.bzl”, “py_console_script_binary”) py_console_script_binary( name = “flake8”, pkg = “@pip//flake8:pkg”, ) config: the flake8 config file (setup.cfg, tox.ini, or .flake8)

Parameters

unknown
required
unknown
required
unknown
default:"[\"py_binary\", \"py_library\"]"