Introduce ruff (eventually replacing autoflake, pyupgrade, flake8) (#86224)

This commit is contained in:
Aarni Koskela
2023-01-24 13:15:16 +02:00
committed by GitHub
parent df0c0297c8
commit bf41a971a2
9 changed files with 185 additions and 11 deletions

View File

@@ -6,6 +6,7 @@ This is NOT a full CI/linting replacement, only a quick check during development
"""
import asyncio
from collections import namedtuple
import itertools
import os
import re
import shlex
@@ -115,9 +116,9 @@ async def pylint(files):
return res
async def flake8(files):
"""Exec flake8."""
_, log = await async_exec("pre-commit", "run", "flake8", "--files", *files)
async def _ruff_or_flake8(tool, files):
"""Exec ruff or flake8."""
_, log = await async_exec("pre-commit", "run", tool, "--files", *files)
res = []
for line in log.splitlines():
line = line.split(":")
@@ -128,17 +129,33 @@ async def flake8(files):
return res
async def flake8(files):
"""Exec flake8."""
return await _ruff_or_flake8("flake8", files)
async def ruff(files):
"""Exec ruff."""
return await _ruff_or_flake8("ruff", files)
async def lint(files):
"""Perform lint."""
files = [file for file in files if os.path.isfile(file)]
fres, pres = await asyncio.gather(flake8(files), pylint(files))
res = fres + pres
res.sort(key=lambda item: item.file)
res = sorted(
itertools.chain(
*await asyncio.gather(
flake8(files),
pylint(files),
ruff(files),
)
),
key=lambda item: item.file,
)
if res:
print("Pylint & Flake8 errors:")
print("Lint errors:")
else:
printc(PASS, "Pylint and Flake8 passed")
printc(PASS, "Lint passed")
lint_ok = True
for err in res: