Merging upstream version 2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
888be815c6
commit
e4376063b0
521 changed files with 21541 additions and 21644 deletions
123
tests/run_py_linters.py
Normal file
123
tests/run_py_linters.py
Normal file
|
@ -0,0 +1,123 @@
|
|||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
# Copied from https://github.com/python-sdbus/python-sdbus
|
||||
# Copyright (C) 2020, 2021 igo95862
|
||||
|
||||
# This file is part of nvme-cli
|
||||
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
from __future__ import annotations
|
||||
|
||||
from argparse import ArgumentParser
|
||||
from os import environ
|
||||
from pathlib import Path
|
||||
from subprocess import run
|
||||
from typing import List
|
||||
|
||||
source_root = Path(environ['MESON_SOURCE_ROOT'])
|
||||
build_dir = Path(environ['MESON_BUILD_ROOT'])
|
||||
|
||||
tests_dir = source_root / 'tests'
|
||||
|
||||
all_python_modules = [
|
||||
tests_dir,
|
||||
]
|
||||
|
||||
mypy_cache_dir = build_dir / '.mypy_cache'
|
||||
|
||||
|
||||
def run_mypy(path: Path) -> None:
|
||||
print(f"Running mypy on {path}")
|
||||
run(
|
||||
args=(
|
||||
'mypy', '--strict',
|
||||
'--cache-dir', mypy_cache_dir,
|
||||
'--python-version', '3.8',
|
||||
'--namespace-packages',
|
||||
'--ignore-missing-imports',
|
||||
path,
|
||||
),
|
||||
check=False,
|
||||
env={'MYPYPATH': str(tests_dir.absolute()), **environ},
|
||||
)
|
||||
|
||||
|
||||
def linter_main() -> None:
|
||||
run(
|
||||
args=(
|
||||
'flake8',
|
||||
*all_python_modules,
|
||||
),
|
||||
check=False,
|
||||
)
|
||||
|
||||
for x in all_python_modules:
|
||||
run_mypy(x)
|
||||
|
||||
|
||||
def get_all_python_files() -> List[Path]:
|
||||
python_files: List[Path] = []
|
||||
|
||||
for python_module in all_python_modules:
|
||||
if python_module.is_dir():
|
||||
for a_file in python_module.iterdir():
|
||||
if a_file.suffix == '.py':
|
||||
python_files.append(a_file)
|
||||
else:
|
||||
python_files.append(python_module)
|
||||
|
||||
return python_files
|
||||
|
||||
|
||||
def formater_main() -> None:
|
||||
all_python_files = get_all_python_files()
|
||||
|
||||
run(
|
||||
args=('autopep8', '--in-place', *all_python_files),
|
||||
check=False,
|
||||
)
|
||||
|
||||
run(
|
||||
args=(
|
||||
'isort',
|
||||
'-m', 'VERTICAL_HANGING_INDENT',
|
||||
'--trailing-comma',
|
||||
*all_python_files,
|
||||
),
|
||||
check=False,
|
||||
)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument(
|
||||
'mode',
|
||||
choices=('lint', 'format'),
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
mode = args.mode
|
||||
|
||||
if mode == 'lint':
|
||||
linter_main()
|
||||
elif mode == 'format':
|
||||
formater_main()
|
||||
else:
|
||||
raise ValueError('Unknown mode', mode)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue