From 0bf701de630fa4b5f320c65f70d9371ebb3eb65b Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Sun, 22 Dec 2024 12:58:27 +1100 Subject: [PATCH] vars: make `populate_dir` a method of `StoreBase` --- pkgs/clan-cli/clan_cli/vars/_types.py | 4 ++++ pkgs/clan-cli/clan_cli/vars/public_modules/in_repo.py | 4 ++++ pkgs/clan-cli/clan_cli/vars/public_modules/vm.py | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/pkgs/clan-cli/clan_cli/vars/_types.py b/pkgs/clan-cli/clan_cli/vars/_types.py index cabefbf10..949865b8f 100644 --- a/pkgs/clan-cli/clan_cli/vars/_types.py +++ b/pkgs/clan-cli/clan_cli/vars/_types.py @@ -152,3 +152,7 @@ class StoreBase(ABC): if target_hash is None and stored_hash is None: return True return stored_hash == target_hash + + @abstractmethod + def populate_dir(self, output_dir: Path) -> None: + pass diff --git a/pkgs/clan-cli/clan_cli/vars/public_modules/in_repo.py b/pkgs/clan-cli/clan_cli/vars/public_modules/in_repo.py index 05b594fc6..80e0292a5 100644 --- a/pkgs/clan-cli/clan_cli/vars/public_modules/in_repo.py +++ b/pkgs/clan-cli/clan_cli/vars/public_modules/in_repo.py @@ -49,3 +49,7 @@ class FactStore(StoreBase): def exists(self, generator: Generator, name: str) -> bool: return (self.directory(generator, name) / "value").exists() + + def populate_dir(self, output_dir: Path) -> None: + msg = "populate_dir is not implemented for public vars stores" + raise NotImplementedError(msg) diff --git a/pkgs/clan-cli/clan_cli/vars/public_modules/vm.py b/pkgs/clan-cli/clan_cli/vars/public_modules/vm.py index d693da8dd..536cbc0ab 100644 --- a/pkgs/clan-cli/clan_cli/vars/public_modules/vm.py +++ b/pkgs/clan-cli/clan_cli/vars/public_modules/vm.py @@ -47,3 +47,7 @@ class FactStore(StoreBase): return fact_path.read_bytes() msg = f"Fact {name} for service {generator.name} not found" raise ClanError(msg) + + def populate_dir(self, output_dir: Path) -> None: + msg = "populate_dir is not implemented for public vars stores" + raise NotImplementedError(msg)