primer_command.py 999 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
  2. # For details: https://github.com/pylint-dev/pylint/blob/main/LICENSE
  3. # Copyright (c) https://github.com/pylint-dev/pylint/blob/main/CONTRIBUTORS.txt
  4. from __future__ import annotations
  5. import abc
  6. import argparse
  7. from pathlib import Path
  8. from typing import TypedDict
  9. from pylint.reporters.json_reporter import OldJsonExport
  10. from pylint.testutils._primer import PackageToLint
  11. class PackageData(TypedDict):
  12. commit: str
  13. messages: list[OldJsonExport]
  14. PackageMessages = dict[str, PackageData]
  15. class PrimerCommand:
  16. """Generic primer action with required arguments."""
  17. def __init__(
  18. self,
  19. primer_directory: Path,
  20. packages: dict[str, PackageToLint],
  21. config: argparse.Namespace,
  22. ) -> None:
  23. self.primer_directory = primer_directory
  24. self.packages = packages
  25. self.config = config
  26. @abc.abstractmethod
  27. def run(self) -> None:
  28. pass