aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/ipm/models/lock.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/ipm/models/lock.py b/src/ipm/models/lock.py
index d7f8a05..e3e3c17 100644
--- a/src/ipm/models/lock.py
+++ b/src/ipm/models/lock.py
@@ -90,9 +90,30 @@ class PackageLock(IPMLock):
return Yggdrasil(i["url"], i["uuid"])
return None
- def has_package(self, filename: str): ...
-
- def add_frozen_package(self, name: str, hash: str,): ...
+ def has_frozen_package(self, name: str, version: str) -> bool:
+ data = self._data.unwrap()
+ for package in data.get("package", []):
+ if package["name"] == name and package["version"] == version:
+ return True
+ return False
+
+ def add_frozen_package(
+ self, name: str, version: str, hash: str, yggdrasil: str, path: str
+ ):
+ aot = tomlkit.aot()
+ aot.append(
+ tomlkit.item(
+ {
+ "name": name,
+ "version": version,
+ "hash": hash,
+ "yggdrasil": yggdrasil,
+ "path": path,
+ }
+ )
+ )
+ self._data.add("package", aot)
+ self.dump()
class ProjectLock(IPMLock):