buildorder.py: comments and other changes
authorFrancisco Demartino <demartino.francisco@gmail.com>
Thu, 24 Dec 2015 06:34:27 +0000 (03:34 -0300)
committerFrancisco Demartino <demartino.francisco@gmail.com>
Thu, 24 Dec 2015 06:34:27 +0000 (03:34 -0300)
buildorder.py

index 273a10d..a515f16 100755 (executable)
@@ -151,23 +151,21 @@ def buildorder():
         pkg = pkg_queue.pop(0)
         if pkg.name in visited:
             continue
-        visited.add(pkg.name)
 
         # print("Processing {}:".format(pkg.name), pkg.needed_by)
-
+        visited.add(pkg.name)
         build_order.append(pkg)
 
         for other_pkg in sorted(pkg.needed_by, key=lambda p: p.name):
-            # Mark this package as done
+            # Remove this pkg from deps
             remaining_deps[other_pkg.name].discard(pkg.name)
-
             # ... and all its subpackages
             remaining_deps[other_pkg.name].difference_update(
                 [subpkg.name for subpkg in pkg.subpkgs]
             )
 
-            if not remaining_deps[other_pkg.name]:  # all deps were pruned?
-                pkg_queue.append(other_pkg)
+            if not remaining_deps[other_pkg.name]:  # all deps were already appended?
+                pkg_queue.append(other_pkg)  # should be processed
 
     return build_order