Skip to contentSkip to conversation

Depexp fixes

PATCH New Ross Burton 1 participant 4 messages Aug 5, 2013

lore
Share & tools
lore
#0 lore raw

cover Depexp fixes

Hi,

I was doing some depexp runs against a world build and almost died of boredom. So, after at least five years I'll try and finish depexp off...

Attached is a series to fix a runtime exception and DOUBLE the speed of loading the data. Whilst this sounds good the time to get the data from the bitbake structures to the GTK+ widgetry is still ~30 seconds on my machine. Still, better than 60 seconds.

Ross

The following changes since commit 4cff3defb545643132b7233fcffb3fedc1bf182b:

grep: Add patch for texinfo 5.1 (2013-08-03 10:33:14 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/depexp

for you to fetch changes up to 8b1a3c7eb0110cbb2345d32f26d37cb7fc5e8d6e:

depexp: fix typo in variable name (2013-08-05 16:39:47 +0100)

----------------------------------------------------------------
Ross Burton (3):
depexp: make parse() a member function
depexp: insert data instead of append/set, for speed
depexp: fix typo in variable name

 bitbake/lib/bb/ui/depexp.py |   28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)

Ross Burton (3):
depexp: make parse() a member function
depexp: insert data instead of append/set, for speed
depexp: fix typo in variable name

 bitbake/lib/bb/ui/depexp.py |   28 +++++++++++-----------------
 1 file changed, 11 insertions(+), 17 deletions(-)
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/3 depexp: make parse() a member function

---
 bitbake/lib/bb/ui/depexp.py |   32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)
bitbake/lib/bb/ui/depexp.py +16 -16
index 885c31a..b7e6f8f 100644
@@ -163,23 +163,23 @@ class DepExplorer(gtk.Window):
         self.revdep_treeview.set_current_package(current_package)
 
 
-def parse(depgraph, pkg_model, depends_model):
-    for package in depgraph["pn"]:
-        pkg_model.set(pkg_model.append(), COL_PKG_NAME, package)
+    def parse(self, depgraph):
+        for package in depgraph["pn"]:
+            self.pkg_model.set(self.pkg_model.append(), COL_PKG_NAME, package)
 
-    for package in depgraph["depends"]:
-        for depend in depgraph["depends"][package]:
-            depends_model.set (depends_model.append(),
-                              COL_DEP_TYPE, TYPE_DEP,
-                              COL_DEP_PARENT, package,
-                              COL_DEP_PACKAGE, depend)
+        for package in depgraph["depends"]:
+            for depend in depgraph["depends"][package]:
+                self.depends_model.set (self.depends_model.append(),
+                                        COL_DEP_TYPE, TYPE_DEP,
+                                        COL_DEP_PARENT, package,
+                                        COL_DEP_PACKAGE, depend)
 
-    for package in depgraph["rdepends-pn"]:
-        for rdepend in depgraph["rdepends-pn"][package]:
-            depends_model.set (depends_model.append(),
-                              COL_DEP_TYPE, TYPE_RDEP,
-                              COL_DEP_PARENT, package,
-                              COL_DEP_PACKAGE, rdepend)
+        for package in depgraph["rdepends-pn"]:
+            for rdepend in depgraph["rdepends-pn"][package]:
+                self.depends_model.set (self.depends_model.append(),
+                                        COL_DEP_TYPE, TYPE_RDEP,
+                                        COL_DEP_PARENT, package,
+                                        COL_DEP_PACKAGE, rdepend)
 
 
 class gtkthread(threading.Thread):
@@ -293,7 +293,7 @@ def main(server, eventHandler, params):
 
             if isinstance(event, bb.event.DepTreeGenerated):
                 gtk.gdk.threads_enter()
-                parse(event._depgraph, dep.pkg_model, dep.depends_model)
+                dep.parse(event._depgraph)
                 gtk.gdk.threads_leave()
 
             if isinstance(event, bb.command.CommandCompleted):
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 2/3 depexp: insert data instead of append/set, for speed

In reply to Ross Burton
---
 bitbake/lib/bb/ui/depexp.py |   12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
bitbake/lib/bb/ui/depexp.py +3 -9
index b7e6f8f..03ed823 100644
@@ -165,21 +165,15 @@ class DepExplorer(gtk.Window):
 
     def parse(self, depgraph):
         for package in depgraph["pn"]:
-            self.pkg_model.set(self.pkg_model.append(), COL_PKG_NAME, package)
+            self.pkg_model.insert(0, (package,))
 
         for package in depgraph["depends"]:
             for depend in depgraph["depends"][package]:
-                self.depends_model.set (self.depends_model.append(),
-                                        COL_DEP_TYPE, TYPE_DEP,
-                                        COL_DEP_PARENT, package,
-                                        COL_DEP_PACKAGE, depend)
+                self.depends_model.insert (0, (TYPE_DEP, package, depend))
 
         for package in depgraph["rdepends-pn"]:
             for rdepend in depgraph["rdepends-pn"][package]:
-                self.depends_model.set (self.depends_model.append(),
-                                        COL_DEP_TYPE, TYPE_RDEP,
-                                        COL_DEP_PARENT, package,
-                                        COL_DEP_PACKAGE, rdepend)
+                self.depends_model.insert (0, (TYPE_RDEP, package, rdepend))
 
 
 class gtkthread(threading.Thread):
Signature · 1 line
1.7.10.4
#3 lore raw

PATCH 3/3 depexp: fix typo in variable name

In reply to Ross Burton
---
 bitbake/lib/bb/ui/depexp.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
bitbake/lib/bb/ui/depexp.py +1 -1
index 03ed823..cbda6d5 100644
@@ -154,7 +154,7 @@ class DepExplorer(gtk.Window):
 
     def on_cursor_changed(self, selection):
         (model, it) = selection.get_selected()
-        if iter is None:
+        if it is None:
             current_package = None
         else:
             current_package = model.get_value(it, COL_PKG_NAME)
Signature · 1 line
1.7.10.4