aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-03-08 15:07:40 +0800
committer苏向夜 <fu050409@163.com>2024-03-08 15:07:40 +0800
commit46a82e2ae4732e47656d763b40cd16445b6f825c (patch)
treef9becc5a653b766c99627558dfdcf266dd25a108 /src
parent31272d886703aadb2b6943d1e0551bcce6b80252 (diff)
downloadipm-46a82e2ae4732e47656d763b40cd16445b6f825c.tar.gz
ipm-46a82e2ae4732e47656d763b40cd16445b6f825c.zip
feat(models): add add and remove api for infini package model
Diffstat (limited to 'src')
-rw-r--r--src/ipm/models/ipk.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/ipm/models/ipk.py b/src/ipm/models/ipk.py
index fb73d83..d91de6e 100644
--- a/src/ipm/models/ipk.py
+++ b/src/ipm/models/ipk.py
@@ -161,6 +161,16 @@ class InfiniProject(InfiniPackage):
raise ProjectError(f"规则包 [bold green]{name}[/] 不在规则包依赖中.")
self._data["requirements"].remove(name) # type: ignore
+ def add(self, name: str, version: str) -> None:
+ denpendencies = self.dependencies
+ denpendencies.update({name: version})
+ self._data["dependencies"] = denpendencies
+
+ def remove(self, name: str) -> None:
+ if name not in self._data.get("dependencies", {}):
+ raise ProjectError(f"规则包 [bold green]{name}[/] 不在规则包依赖中.")
+ self._data["dependencies"].remove(name) # type: ignore
+
@property
def plain_dict(self) -> TOMLDocument:
return self._data
@@ -187,7 +197,7 @@ class InfiniProject(InfiniPackage):
@property
def dependencies(self) -> Dict[str, Any]:
- return self._data["dependencies"] # type: ignore
+ return self._data.get("dependencies", {}) # type: ignore
@property
def requirements(self) -> Requirements: