diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f32cead41960832f9a7ec0c6ebf8018432ace5a9..84c1ab077fd7cea11659b9e6d5314c3af7e22b7b 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 f39dcf13c143531f2c45570584c99939918cd377..7a2ddc814de0a9fb192c066ab1016f982d91738f 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