Enabled the ruff python linter in CI, and resolved the issues that were detected by it. Ruff was used due to it's faster checking compared with other linters like pylint. This was added to resolve the python linting request in #13608.
68 lines
1.7 KiB
Python
Executable File
68 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Wrapper around docutils rst2x commands,
|
|
converting their dependency files to a format understood by meson/ninja.
|
|
"""
|
|
|
|
#
|
|
# This file is part of mpv.
|
|
#
|
|
# mpv 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.
|
|
#
|
|
# mpv 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 mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def convert_depfile(output, depfile):
|
|
with open(depfile, 'r') as f:
|
|
deps = f.readlines()
|
|
|
|
with open(depfile, 'w') as f:
|
|
f.write(os.path.abspath(output))
|
|
f.write(': \\\n')
|
|
for dep in deps:
|
|
dep = dep[:-1]
|
|
f.write('\t')
|
|
f.write(os.path.abspath(dep))
|
|
f.write(' \\\n')
|
|
|
|
def remove(path):
|
|
try:
|
|
os.remove(path)
|
|
except FileNotFoundError:
|
|
pass
|
|
|
|
argv = sys.argv[1:]
|
|
|
|
depfile = None
|
|
output = argv[-1]
|
|
|
|
for opt, optarg in zip(argv, argv[1:]):
|
|
if opt == '--record-dependencies':
|
|
depfile = optarg
|
|
|
|
try:
|
|
proc = subprocess.run(argv, check=True)
|
|
if depfile is not None:
|
|
convert_depfile(output, depfile)
|
|
except Exception:
|
|
remove(output)
|
|
if depfile is not None:
|
|
remove(depfile)
|
|
sys.exit(1)
|
|
|
|
sys.exit(proc.returncode)
|