infocalypse

(djk)
2009-04-05: Added arg to path_cost to return blocks instead of bytes.

Added arg to path_cost to return blocks instead of bytes.

diff --git a/infocalypse/graph.py b/infocalypse/graph.py
--- a/infocalypse/graph.py
+++ b/infocalypse/graph.py
@@ -542,13 +542,17 @@ class UpdateGraph:
         paths.sort(cmp_age_weight)
         return paths
 
-    def path_cost(self, path):
+    def path_cost(self, path, blocks=False):
         """ The sum of the lengths of the hg bundles required to update
             using the path. """
 
         value = 0
         for step in path:
-            value += self.edge_table[step[:2]][0]
+            if blocks:
+                value += block_cost(self.edge_table[step[:2]][0])
+            else:
+                value += self.edge_table[step[:2]][0]
+
         return value
 
     # Returns ((start_index, end_index, chk_list_ordinal), ...)
@@ -798,7 +802,7 @@ def dump_path(graph, path):
 
     print "(%s)-->[%s] cost=%0.2f" % (pretty_index(path[0][0]),
                                       pretty_index(path[-1][1]),
-                                      graph.path_cost(path))
+                                      graph.path_cost(path, True))
     for step in path:
         cost = graph.get_length(step)
         print "   (%s) -- (%0.2f, %i) --> [%s]" % (pretty_index(step[0]),