#!/usr/bin/env python # Copyright 1999-2024 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 """Run pylint with the right settings.""" import os import sys def find_all_modules(source_root): """Locate all python modules in the tree for scanning""" ret = [] for root, _dirs, files in os.walk(source_root, topdown=False): # Add all of the .py modules in the tree. ret += [os.path.join(root, x) for x in files if x.endswith(".py")] # Add the main scripts that don't end in .py. ret += [os.path.join(source_root, x) for x in ("pylint",)] return ret def main(argv): """The main entry point""" source_root = os.path.dirname(os.path.realpath(__file__)) if not argv: argv = find_all_modules(source_root) pympath = source_root pythonpath = os.environ.get("PYTHONPATH") if pythonpath is None: pythonpath = pympath else: pythonpath = pympath + ":" + pythonpath os.environ["PYTHONPATH"] = pythonpath pylintrc = os.path.join(source_root, "pyproject.toml") cmd = ["pylint", "--rcfile", pylintrc] os.execvp(cmd[0], cmd + argv) if __name__ == "__main__": sys.exit(main(sys.argv[1:]))