From 317b73ffaf23c92f28fec44d6d2f40e6e35c5af8 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Fri, 27 Sep 2024 20:52:01 +0200 Subject: [PATCH] Allow passing filename to licenses script [ci] (#126951) --- .github/workflows/ci.yaml | 4 ++-- script/licenses.py | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f32cead4196..84c1ab077fd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -645,7 +645,7 @@ jobs: - name: Process licenses run: | . venv/bin/activate - python -m script.licenses + python -m script.licenses licenses.json pylint: name: Check pylint @@ -819,7 +819,7 @@ jobs: fail-fast: false matrix: python-version: ${{ fromJson(needs.info.outputs.python_versions) }} - name: Split tests for full run ${{ matrix.python-version }} + name: Split tests for full run Python ${{ matrix.python-version }} steps: - name: Install additional OS dependencies run: | diff --git a/script/licenses.py b/script/licenses.py index f39dcf13c14..7a2ddc814de 100644 --- a/script/licenses.py +++ b/script/licenses.py @@ -2,6 +2,8 @@ from __future__ import annotations +from argparse import ArgumentParser +from collections.abc import Sequence from dataclasses import dataclass import json from pathlib import Path @@ -174,11 +176,24 @@ TODO = { } -def main() -> int: +def main(argv: Sequence[str] | None = None) -> int: """Run the main script.""" - raw_licenses = json.loads(Path("licenses.json").read_text()) - package_definitions = [PackageDefinition.from_dict(data) for data in raw_licenses] exit_code = 0 + + parser = ArgumentParser() + parser.add_argument( + "path", + nargs="?", + metavar="PATH", + default="licenses.json", + help="Path to json licenses file", + ) + + argv = argv or sys.argv[1:] + args = parser.parse_args(argv) + + raw_licenses = json.loads(Path(args.path).read_text()) + package_definitions = [PackageDefinition.from_dict(data) for data in raw_licenses] for package in package_definitions: previous_unapproved_version = TODO.get(package.name) approved = False -- GitLab