Alon Bar-Lev has uploaded a new change for review.

Change subject: core: context: cleanup buildSequence
......................................................................

core: context: cleanup buildSequence

Change-Id: I31f95bc1331bc066e25b777a73b10c0ef84734b2
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M src/otopi/context.py
1 file changed, 19 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/otopi refs/changes/77/11777/1

diff --git a/src/otopi/context.py b/src/otopi/context.py
index f8b2780..2f7418a 100644
--- a/src/otopi/context.py
+++ b/src/otopi/context.py
@@ -24,6 +24,7 @@
 import sys
 import os
 import traceback
+import operator
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='otopi')
 
@@ -254,27 +255,29 @@
         Should be called after plugins are loaded.
 
         """
-        tmpseq = {}
+        #
+        # bind functions to plugin
+        #
+        tmplist = []
         for p in self._plugins:
             for metadata in util.methodsByAttribute(
                 p.__class__, 'decoration_event'
             ):
-                # create key while we set
-                # tmpseq[stage][priority].append(methodinfo)
-                tmpseq.setdefault(
-                    metadata['stage'], {}
-                ).setdefault(
-                    metadata['priority'], []
-                ).append(
-                    {
-                        'method': metadata['method'].__get__(p),
-                        'condition': metadata['condition'].__get__(p),
-                    }
-                )
+                metadata = metadata.copy()
+                metadata['method'] = metadata['method'].__get__(p)
+                metadata['condition'] = metadata['condition'].__get__(p)
+                tmplist.append(metadata)
 
-        for stage, data in tmpseq.items():
-            for key in sorted(data.keys()):
-                self._sequence.setdefault(stage, []).extend(data[key])
+        #
+        # sort based on priority
+        #
+        tmplist.sort(key=operator.itemgetter('priority'))
+
+        sequence = {}
+        for m in tmplist:
+            sequence.setdefault(m['stage'], []).append(m)
+
+        self._sequence = sequence
 
     def runSequence(self):
         """Run sequence."""


--
To view, visit http://gerrit.ovirt.org/11777
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I31f95bc1331bc066e25b777a73b10c0ef84734b2
Gerrit-PatchSet: 1
Gerrit-Project: otopi
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to