From 13af9ff2fd127a375b6cd5fea12383ad4d55efc2 Mon Sep 17 00:00:00 2001 From: Gabriel Dugny Date: Thu, 1 Aug 2024 17:01:36 +0200 Subject: [PATCH] fix(pdm): avoid deprecation warning for PDM 2.17+ PDM commit changing lock behaviour: https://github.com/pdm-project/pdm/commit/c190e1439cf88cfa06bbf20ee01b1f0d6dfeabbb MR: https://github.com/pdm-project/pdm/pull/2995 --- src/sync_pre_commit_lock/pdm_plugin.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/sync_pre_commit_lock/pdm_plugin.py b/src/sync_pre_commit_lock/pdm_plugin.py index d256acb..9d2c661 100644 --- a/src/sync_pre_commit_lock/pdm_plugin.py +++ b/src/sync_pre_commit_lock/pdm_plugin.py @@ -25,6 +25,7 @@ from pdm.cli.hooks import HookManager from pdm.core import Core from pdm.models.candidates import Candidate + from pdm.models.repositories.lock import LockedRepository from pdm.project import Project from pdm.termui import UI @@ -164,6 +165,12 @@ def add_arguments(self, parser: argparse.ArgumentParser) -> None: dry_run_option.add_to_parser(parser) def handle(self, project: Project, options: argparse.Namespace) -> None: - candidates = project.locked_repository.all_candidates + candidates = self._get_locked_repository(project).all_candidates on_pdm_lock_check_pre_commit(project, resolution=candidates, dry_run=options.dry_run, with_prefix=False) + + def _get_locked_repository(self, project: Project) -> LockedRepository: + # `locked_repository` was deprecated in PDM 2.17 favour of `get_locked_repository`, try to use it first to avoid warning + if hasattr(project, "get_locked_repository"): + return project.get_locked_repository() + return project.locked_repository