]> git.lizzy.rs Git - cheatdb.git/blobdiff - app/tasks/importtasks.py
Fix dependencies still being added if in provides
[cheatdb.git] / 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: