diff options
author | Santhosh Thottingal <santhosh.thottingal@gmail.com> | 2009-03-26 22:42:30 +0530 |
---|---|---|
committer | Santhosh Thottingal <santhosh.thottingal@gmail.com> | 2009-03-26 22:42:30 +0530 |
commit | cafcffbb7412d8a80200d288d6819bd4a6779399 (patch) | |
tree | 6220da6b6f59ff816c29ba721aae07b64163dad7 /silpa/common/modulemanager.py | |
parent | c57278172003f9d4aa1171197dd1242e836d43b7 (diff) | |
download | Rachana.git-cafcffbb7412d8a80200d288d6819bd4a6779399.tar.gz Rachana.git-cafcffbb7412d8a80200d288d6819bd4a6779399.tar.xz Rachana.git-cafcffbb7412d8a80200d288d6819bd4a6779399.zip |
Adding plugin manager
Diffstat (limited to 'silpa/common/modulemanager.py')
-rw-r--r-- | silpa/common/modulemanager.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/silpa/common/modulemanager.py b/silpa/common/modulemanager.py new file mode 100644 index 0000000..028c4ae --- /dev/null +++ b/silpa/common/modulemanager.py @@ -0,0 +1,33 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +import sys +from utils import * +class ModuleManager: + def import_module(self,name): + parts = name.split(".") + try: + obj= sys.modules[name] + except KeyError: + obj = __import__(".".join(parts[:-1])) + print "Loading " , obj + if(len(parts)>1): + for part in parts[1:]: + obj = getattr(obj,part) + return obj + + def getModuleInstance(self,action): + module_name = self.find_module(action) + if(module_name): + return self.import_module(module_name).getInstance() + else: + return None + def find_module(self,action): + try: + return getModulesList()[action] + except: + return None +if __name__ == '__main__': + mm=ModuleManager() + print mm.getModuleInstance("lemmatize") + print mm.import_module("modules.lemmatizer").getInstance() + |