diff options
| author | 2024-01-23 16:04:39 +0800 | |
|---|---|---|
| committer | 2024-01-23 16:04:39 +0800 | |
| commit | 38c48730c0af75e5c5333628102ee3b47641e8f5 (patch) | |
| tree | d001fef5834a4a2c880012780c21ea3fb2c2dcc9 /src | |
| parent | f1626adff30d4232dc8ff9710190f1e83f4455c6 (diff) | |
| download | ipm-38c48730c0af75e5c5333628102ee3b47641e8f5.tar.gz ipm-38c48730c0af75e5c5333628102ee3b47641e8f5.zip | |
:sparkles: feat(lock): new init method
Diffstat (limited to 'src')
| -rw-r--r-- | src/ipm/models/lock.py | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/ipm/models/lock.py b/src/ipm/models/lock.py index f1a70b0..14f23d4 100644 --- a/src/ipm/models/lock.py +++ b/src/ipm/models/lock.py @@ -247,19 +247,34 @@ class ProjectLock(IpmLock): def __init__(self, source_path: StrPath | None = None) -> None: super().__init__(source_path=source_path or Path(".").resolve() / "infini.lock") + def _init(self) -> None: + # TODO 实现搜索下一级依赖 + ... + + def init(self) -> None: + pkg = ipk.InfiniProject() + self.metadata = { + "name": pkg.name, + "version": pkg.version, + "description": pkg.description, + "license": pkg.license, + } + self.requirements = [ + {"name": name, "version": version or "latest"} + for name, version in pkg.requirements.values() + ] + self.dependencies = [ + {"name": name, "version": version or "latest"} + for name, version in pkg.dependencies.values() + ] + self._init() + self.dumps() + def load(self) -> None: pkg = ipk.InfiniProject() if not self.source_path.exists(): - self.metadata = { - "name": pkg.name, - "version": pkg.version, - "description": pkg.description, - "license": pkg.license, - } - self.requirements = [] - self.dependencies = [] - self.dumps() + self.init() else: loaded_data = toml.load(self.source_path.open("r", encoding="utf-8")) |
