]> git.lizzy.rs Git - cheatdb.git/commitdiff
Fix dependencies still being added if in provides
authorrubenwardy <rw@rubenwardy.com>
Mon, 17 Aug 2020 23:16:03 +0000 (00:16 +0100)
committerrubenwardy <rw@rubenwardy.com>
Mon, 17 Aug 2020 23:16:03 +0000 (00:16 +0100)
Fixes #226

app/tasks/importtasks.py

index ff085cd4b1cc6270333bb55b6037e32e960901d7..26e94f6db2f6cb01b8a2f6b645468f1f0719f2ce 100644 (file)
@@ -167,16 +167,27 @@ def updateMetaFromRelease(self, id, path):
                        package.provides.clear()
                        package.provides.extend(provides)
 
-                       for dep in package.dependencies:
-                               if dep.meta_package:
-                                       db.session.delete(dep)
+                       # Delete all meta package dependencies
+                       package.dependencies.filter(Dependency.meta_package != None).delete()
 
-                       for meta in getMetaPackages(tree.fold("meta", "depends")):
+                       # Get raw dependencies
+                       depends = tree.fold("meta", "depends")
+                       optional_depends = tree.fold("meta", "optional_depends")
+
+                       # Filter out provides
+                       for mod in provides:
+                               depends.discard(mod)
+                               optional_depends.discard(mod)
+
+                       # Add dependencies
+
+                       for meta in getMetaPackages(depends):
                                db.session.add(Dependency(package, meta=meta, optional=False))
 
-                       for meta in getMetaPackages(tree.fold("meta", "optional_depends")):
+                       for meta in getMetaPackages(optional_depends):
                                db.session.add(Dependency(package, meta=meta, optional=True))
 
+
                        db.session.commit()
 
                except MinetestCheckError as err: