Run plugins in predictable order

In the config file, if 2 plugins listen to the same event, make sure the
one that is listed first is executed earlier.
This commit is contained in:
Dang Mai 2013-02-03 10:00:44 -05:00
parent 4f7e738f82
commit ea3a7ea45d

View file

@ -155,7 +155,7 @@ class BeetsPlugin(object):
return func
return helper
_classes = set()
_classes = []
def load_plugins(names=()):
"""Imports the modules for a sequence of plugin names. Each name
must be the name of a Python module under the "beetsplug" namespace
@ -177,7 +177,7 @@ def load_plugins(names=()):
for obj in getattr(namespace, name).__dict__.values():
if isinstance(obj, type) and issubclass(obj, BeetsPlugin) \
and obj != BeetsPlugin:
_classes.add(obj)
_classes.append(obj)
except:
log.warn('** error loading plugin %s' % name)