Skip to content

Instantly share code, notes, and snippets.

@FurryHead
Created June 7, 2011 20:52
Show Gist options
  • Save FurryHead/1013133 to your computer and use it in GitHub Desktop.
Save FurryHead/1013133 to your computer and use it in GitHub Desktop.
Creates a list of all plugins
import os, inspect
pList = { }
mList = { }
def plugin(cls):
try:
mList[inspect.stack()[1][1].split(os.sep)[1]].append(cls.__name__)
except KeyError:
mList[inspect.stack()[1][1].split(os.sep)[1]] = []
mList[inspect.stack()[1][1].split(os.sep)[1]].append(cls.__name__)
pList[cls.__name__] = cls
return cls
def refresh(pluginName = None):
if pluginName is None:
_files = ["plugins"+os.sep+f for f in os.listdir("plugins") if f != "__init__.py" and not f.endswith(".pyc") and not os.path.isdir("plugins"+os.sep+f)]
for f in _files:
env = {"plugin":plugin}
execfile(f, {}, env)
else:
for f,classes in mList:
if pluginName in classes:
env = {"plugin":plugin}
execfile("plugins"+os.sep+f, {}, env)
def getPluginClass(name):
try:
return pList[name]
except KeyError:
return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment