summaryrefslogtreecommitdiffstats
path: root/func/module_loader.py
diff options
context:
space:
mode:
authorKrzysztof A. Adamski <krzysztofa@gmail.com>2008-08-07 19:05:14 -0400
committerKrzysztof A. Adamski <krzysztofa@gmail.com>2008-08-07 19:05:14 -0400
commit9c7f1053c9823e9c39df3233f56a04368002ef9d (patch)
tree05dcb94375b64420aa994249b5fea6050e885000 /func/module_loader.py
parentb2ea14876b07a9a2a64adbb0ddd824e15c674ffe (diff)
downloadfunc-9c7f1053c9823e9c39df3233f56a04368002ef9d.tar.gz
func-9c7f1053c9823e9c39df3233f56a04368002ef9d.tar.xz
func-9c7f1053c9823e9c39df3233f56a04368002ef9d.zip
Pass reference to the parrent class to modules loaded by load_methods().
Diffstat (limited to 'func/module_loader.py')
-rwxr-xr-xfunc/module_loader.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/func/module_loader.py b/func/module_loader.py
index a999de7..66045d1 100755
--- a/func/module_loader.py
+++ b/func/module_loader.py
@@ -39,17 +39,16 @@ def module_walker(topdir):
return module_files
-def load_methods(path, main_class):
+def load_methods(path, main_class, parent_class=None):
methods = {}
- modules = load_modules(path, main_class)
+ modules = load_modules(path, main_class, parent_class=parent_class)
for x in modules.keys():
for method in dir(modules[x]):
if is_public_valid_method(modules[x], method):
methods["%s.%s" % (x,method)]=getattr(modules[x], method)
return methods
-def load_modules(path='func/minion/modules/', main_class=func_module.FuncModule, blacklist=None):
-
+def load_modules(path='func/minion/modules/', main_class=func_module.FuncModule, blacklist=None, parent_class=None):
python_path = distutils.sysconfig.get_python_lib()
module_file_path = "%s/%s" % (python_path, path)
(mod_path, mod_dir) = os.path.split(os.path.normpath(module_file_path))
@@ -96,7 +95,7 @@ def load_modules(path='func/minion/modules/', main_class=func_module.FuncModule,
attr = getattr(blip, obj)
if isclass(attr) and issubclass(attr, main_class):
logger.debug("Loading %s module" % attr)
- mods[mod_imp_name] = attr()
+ mods[mod_imp_name] = attr(parent_class)
except ImportError, e:
# A module that raises an ImportError is (for now) simply not loaded.