diff --git a/modelspace/ModelSpace.py b/modelspace/ModelSpace.py index 5387ef1..532a553 100644 --- a/modelspace/ModelSpace.py +++ b/modelspace/ModelSpace.py @@ -41,8 +41,8 @@ class ModelSpace: type_subdir = self.layout.get(package.package_type, None) if not type_subdir: raise RuntimeError(f"This type ({package.package_type}) of packages not supported by current modelspace") lineage_subdir = package.lineage - if no_lineage: return str(self.path / type_subdir) - return str(self.path / type_subdir / lineage_subdir) + if no_lineage: return str(type_subdir) + return str(Path(type_subdir) / lineage_subdir) def _register_package_in_temp(self, package: ModelPackage): for resource in package.provides: self.temp_installed_resources.add(resource, package.uuid) @@ -71,22 +71,17 @@ class ModelSpace: for resource in resources: selected_packages = selected_packages | self._deptree(resource, answer) - files = SetsDict() for package in selected_packages: for file in package.files: - files.add(package.uuid, Path(self.get_dest_dir(package, self.layout.no_lineage)) / file) - - for pkg_id in files.keys: - for file in files.by_key(pkg_id): - self.check_for_file_conflicts(pkg_id, file) + self.check_for_file_conflicts(package.uuid, Path(self.path) / self.get_dest_dir(package, self.layout.no_lineage) / file) if len(self.temp_file_conflicts.index) != 0: raise RuntimeError("File conflicts detected") - # TODO run copier - - - - pass + for package in selected_packages: + self.db.create_manual(package.uuid) # TODO add deps separation from manual packages + for file in package.files: + self.db.create_file(package.uuid, Path(self.get_dest_dir(package, self.layout.no_lineage)) / file) + self._copier(package.path / "files" / file, str(self.get_dest_dir(package, self.layout.no_lineage)),[file])