Rev 2: Everyone wants a progress bar, make it easy in http://bzr.arbash-meinel.com/plugins/per_file_graph

John Arbash Meinel john at arbash-meinel.com
Thu Oct 29 15:42:02 GMT 2009


At http://bzr.arbash-meinel.com/plugins/per_file_graph

------------------------------------------------------------
revno: 2
revision-id: john at arbash-meinel.com-20091029154149-mm48de8ndfczj3qt
parent: john at arbash-meinel.com-20091029151830-qn01ubl669owb7wm
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: per_file_graph
timestamp: Thu 2009-10-29 10:41:49 -0500
message:
  Everyone wants a progress bar, make it easy
-------------- next part --------------
=== modified file 'builder.py'
--- a/builder.py	2009-10-29 15:18:30 +0000
+++ b/builder.py	2009-10-29 15:41:49 +0000
@@ -27,20 +27,28 @@
         dirname, filename = osutils.split(target_filename)
         self.transport = transport.get_transport(dirname)
         self.filename = filename
+        self.pb = None
 
     def get_per_file_graph(self):
         """Return the per-file graph from this repository."""
-        pb = ui.ui_factory.nested_progress_bar()
+        self.update('Finding text keys')
+        keys = self.repo.texts.keys()
+        self.update('Found %d text keys, getting parent map' % (len(keys),))
+        pm = self.repo.texts.get_parent_map(keys)
+        self.update('loaded parent map')
+        return pm
+
+    def build(self):
+        self.pb = ui.ui_factory.nested_progress_bar()
         try:
-            pb.update('Finding text keys')
-            keys = self.repo.texts.keys()
-            pb.update('Found %d text keys, getting parent map' % (len(keys),))
-            pm = self.repo.texts.get_parent_map(keys)
-            pb.update('loaded parent map')
+            self._build()
         finally:
-            pb.finished()
-        return pm
-
-    def build(self):
+            self.pb.finished()
+
+    def update(self, *args):
+        if self.pb is not None:
+            self.pb.update(*args)
+
+    def _build(self):
         """Actually build the index."""
         raise NotImplementedError(self.build)



More information about the bazaar-commits mailing list