diff options
| -rw-r--r-- | src/ipm/models/lock.py | 27 |
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): |
