fix: accept -p and -t in every tool

verify, generate_pack and cross_reference took -p and -t, slots, generate_truth, diff_truth, export_native and refresh_data_dirs refused them. A test reads every add_argument call.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 10:11:22 +02:00
1 parent fac47dc4c0
commit 2eee7a991d
6 files changed
+36 -7

No files matched your search

+2 -2
View File
@@ -182,7 +182,7 @@ def main() -> None:
group.add_argument(
"--all", action="store_true", help="diff all registered platforms"
)
group.add_argument("--platform", type=platform_arg, help="diff a single platform")
group.add_argument("--platform", "-p", type=platform_arg, help="diff a single platform")
# One output form: --json beside --format markdown printed JSON and
# dropped the markdown without a word.
output = parser.add_mutually_exclusive_group()
@@ -207,7 +207,7 @@ def main() -> None:
help="platform YAML directory (default: %(default)s)",
)
parser.add_argument(
"--target",
"--target", "-t",
help="read the models generate_truth --target wrote, each under the "
"target as its platform files it",
)
+1 -1
View File
@@ -857,7 +857,7 @@ def main() -> None:
)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("--all", action="store_true", help="every platform")
group.add_argument("--platform", type=platform_arg, help="a single platform")
group.add_argument("--platform", "-p", type=platform_arg, help="a single platform")
parser.add_argument(
"--output-dir", default="exports",
help="directory the updated platform files go to (default: %(default)s)",
+1 -1
View File
@@ -43,7 +43,7 @@ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("--all", action="store_true", help="all registered platforms")
group.add_argument("--platform", type=platform_arg, help="single platform name")
group.add_argument("--platform", "-p", type=platform_arg, help="single platform name")
parser.add_argument(
"--output-dir",
default=DEFAULT_OUTPUT_DIR,
+3 -1
View File
@@ -576,7 +576,9 @@ def main() -> None:
parser.add_argument(
"--dry-run", action="store_true", help="Preview without downloading"
)
parser.add_argument("--platform", type=platform_arg, help="Only refresh entries for this platform")
parser.add_argument(
"--platform", "-p", type=platform_arg, help="Only refresh entries for this platform"
)
parser.add_argument(
"--registry", default=DEFAULT_REGISTRY, help="Path to _data_dirs.yml"
)
+2 -2
View File
@@ -897,7 +897,7 @@ def main() -> int:
"the file a platform baseline would ship.",
)
parser.add_argument(
"--platform", type=platform_arg,
"--platform", "-p", type=platform_arg,
help="one platform instead of all",
)
parser.add_argument(
@@ -918,7 +918,7 @@ def main() -> int:
help="with all platforms, the archived ones too (RetroPie)",
)
parser.add_argument(
"--target", help="judge only the cores a hardware target builds",
"--target", "-t", help="judge only the cores a hardware target builds",
)
parser.add_argument(
"--strict",
+27
View File
@@ -145,6 +145,33 @@ class TheVerifySummaryCountsDiscrepancies(unittest.TestCase):
self.assertIn(part, message)
class OneSpellingPerOption(unittest.TestCase):
"""verify.py -p batocera worked and slots.py -p batocera was refused."""
SHORT = {"--platform": "-p", "--target": "-t"}
# migrate.py's --target is the directory files move to, not a hardware target.
OTHER_MEANING = {("migrate.py", "--target")}
def test_every_script_takes_the_short_forms(self):
import ast # noqa: PLC0415
missing = []
for path in sorted((REPO_ROOT / "scripts").rglob("*.py")):
tree = ast.parse(path.read_text(encoding="utf-8"))
for node in ast.walk(tree):
if not (isinstance(node, ast.Call)
and getattr(node.func, "attr", None) == "add_argument"):
continue
flags = [a.value for a in node.args
if isinstance(a, ast.Constant) and isinstance(a.value, str)]
for long, short in self.SHORT.items():
if (path.name, long) in self.OTHER_MEANING:
continue
if long in flags and short not in flags:
missing.append(f"{path.relative_to(REPO_ROOT)}:{node.lineno} {long}")
self.assertEqual(missing, [])
class ThePipelineCountsItsRealSteps(unittest.TestCase):
"""Labels read N/8 for a run of 24 steps, and the summary used keys
the log never printed."""