mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 16:19:21 +00:00
9e0baf370a
git is the source of truth for the copyright, copyrite (the tool) was taking exponentially longer with each release, and it's polluting the code with sometime as much as 50 lines of names.
50 lines
2.1 KiB
Python
50 lines
2.1 KiB
Python
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
|
|
# Copyright (c) https://github.com/PyCQA/pylint/graphs/contributors
|
|
|
|
from glob import glob
|
|
from os.path import basename, join, splitext
|
|
from typing import List, Tuple
|
|
|
|
from pylint.testutils.constants import SYS_VERS_STR
|
|
|
|
|
|
def _get_tests_info(
|
|
input_dir: str, msg_dir: str, prefix: str, suffix: str
|
|
) -> List[Tuple[str, str]]:
|
|
"""Get python input examples and output messages.
|
|
|
|
We use following conventions for input files and messages:
|
|
for different inputs:
|
|
test for python >= x.y -> input = <name>_pyxy.py
|
|
test for python < x.y -> input = <name>_py_xy.py
|
|
for one input and different messages:
|
|
message for python >= x.y -> message = <name>_pyxy.txt
|
|
lower versions -> message with highest num
|
|
"""
|
|
result = []
|
|
for fname in glob(join(input_dir, prefix + "*" + suffix)):
|
|
infile = basename(fname)
|
|
fbase = splitext(infile)[0]
|
|
# filter input files :
|
|
pyrestr = fbase.rsplit("_py", 1)[-1] # like _26 or 26
|
|
if pyrestr.isdigit(): # '24', '25'...
|
|
if pyrestr.isdigit() and int(SYS_VERS_STR) < int(pyrestr):
|
|
continue
|
|
if pyrestr.startswith("_") and pyrestr[1:].isdigit():
|
|
# skip test for higher python versions
|
|
if pyrestr[1:].isdigit() and int(SYS_VERS_STR) >= int(pyrestr[1:]):
|
|
continue
|
|
messages = glob(join(msg_dir, fbase + "*.txt"))
|
|
# the last one will be without ext, i.e. for all or upper versions:
|
|
if messages:
|
|
for outfile in sorted(messages, reverse=True):
|
|
py_rest = outfile.rsplit("_py", 1)[-1][:-4]
|
|
if py_rest.isdigit() and int(SYS_VERS_STR) >= int(py_rest):
|
|
break
|
|
else:
|
|
# This will provide an error message indicating the missing filename.
|
|
outfile = join(msg_dir, fbase + ".txt")
|
|
result.append((infile, outfile))
|
|
return result
|