[KSS-checkins] r48556 - kukit/kss.base/trunk/kss/base

jvloothuis at codespeak.net jvloothuis at codespeak.net
Sun Nov 11 13:33:37 CET 2007


Author: jvloothuis
Date: Sun Nov 11 13:33:35 2007
New Revision: 48556

Modified:
   kukit/kss.base/trunk/kss/base/plugin.py
   kukit/kss.base/trunk/kss/base/plugin.txt
Log:

Made the order of available_plugins depend on the plugin priority. This is usefull when depending on the order for Javascript concatination etc.


Modified: kukit/kss.base/trunk/kss/base/plugin.py
==============================================================================
--- kukit/kss.base/trunk/kss/base/plugin.py	(original)
+++ kukit/kss.base/trunk/kss/base/plugin.py	Sun Nov 11 13:33:35 2007
@@ -48,10 +48,15 @@
     return os.path.join(module_path(mod), *subpath.split('/'))
 
 def available_plugins():
+    plugins = []
+
     for entry_point in iter_entry_points('kss.plugin'):
         plugin_factory = entry_point.load()
         plugin = plugin_factory()
-        yield entry_point.name, plugin
+        plugins.append((entry_point.name, plugin))
+
+    return sorted(plugins, 
+                  key=lambda item: item[1].priority)
 
 def load_plugins(*names):
     def load(name):

Modified: kukit/kss.base/trunk/kss/base/plugin.txt
==============================================================================
--- kukit/kss.base/trunk/kss/base/plugin.txt	(original)
+++ kukit/kss.base/trunk/kss/base/plugin.txt	Sun Nov 11 13:33:35 2007
@@ -132,3 +132,10 @@
 
   >>> list(available_plugins())
   [('kss-core', <kss.base.config.KSSCore ...), ('testing', <ExamplePlugin ...)]
+
+The sequence of this is based on the plugin priority. If we change the
+priority of the example plugin it will be the first one.
+
+  >>> ExamplePlugin.priority = -99999
+  >>> list(available_plugins())
+  [('testing', <ExamplePlugin ...>), ('kss-core', <kss.base.config.KSSCore ...>)]


More information about the Kukit-checkins mailing list