diff options
Diffstat (limited to 'silpa/common')
-rw-r--r-- | silpa/common/__init__.py | 6 | ||||
-rw-r--r-- | silpa/common/modulemanager.py | 52 | ||||
-rw-r--r-- | silpa/common/silpamodule.py | 16 | ||||
-rw-r--r-- | silpa/common/silparesponse.py | 36 |
4 files changed, 110 insertions, 0 deletions
diff --git a/silpa/common/__init__.py b/silpa/common/__init__.py new file mode 100644 index 0000000..29925b2 --- /dev/null +++ b/silpa/common/__init__.py @@ -0,0 +1,6 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +from silpamodule import SilpaModule +from silparesponse import SilpaResponse +from modulemanager import ModuleManager diff --git a/silpa/common/modulemanager.py b/silpa/common/modulemanager.py new file mode 100644 index 0000000..c6185dd --- /dev/null +++ b/silpa/common/modulemanager.py @@ -0,0 +1,52 @@ +#! /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])) + if(len(parts)>1): + for part in parts[1:]: + try: + obj = getattr(obj,part) + except: + obj = None + return obj + + def getModuleInstance(self,action): + action=action.replace(" ","_") + module_name = self.find_module(action) + if(module_name): + try: + return self.import_module(module_name).getInstance() + except: + print dir(self.import_module(module_name)) + else: + return None + def find_module(self,action): + try: + return getModulesList()[action] + except: + return None + def getModulesInfoAsHTML(self): + module_dict=getModulesList () + response = "<h2>Available Modules</h2></hr>" + response = response+"<table class=\"table1\"><tr><th>Module</th><th>Description</th></tr>" + for action in module_dict: + module_instance=self.getModuleInstance(action) + if(module_instance!=None): + response = response+"<tr><td><a href='"+ action +"'>"+module_instance.get_module_name()+"</a></td>" + response = response+"<td>"+module_instance.get_info()+"</td></tr>" + else: + response = response+"<tr><td>"+action.replace("_"," ")+"</td>" + response = response+"<td>Error while retrieving module details</td></tr>" + return response+"</table>" +if __name__ == '__main__': + mm=ModuleManager() + print mm.getModuleInstance("lemmatize") + print mm.import_module("modules.lemmatizer").getInstance() + diff --git a/silpa/common/silpamodule.py b/silpa/common/silpamodule.py new file mode 100644 index 0000000..7c5a538 --- /dev/null +++ b/silpa/common/silpamodule.py @@ -0,0 +1,16 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +class SilpaModule: + def __init__(self): + self.response = None + + def get_errormessage(self): + return None + def get_successmessage(self): + return None + def get_module_name(self): + return "Untitled Silpa Module" + def get_info(self): + return "Module description" + def process(self,object): + return "Not Implemented" diff --git a/silpa/common/silparesponse.py b/silpa/common/silparesponse.py new file mode 100644 index 0000000..13cc5ca --- /dev/null +++ b/silpa/common/silparesponse.py @@ -0,0 +1,36 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +from utils import * +class SilpaResponse: + def __init__(self): + self.response =getTemplate() + def toUnicode(self): + self.response=self.response.replace("$$SILPA_COPYRIGHT$$",getCopyrightInfo()); + return self.response.encode('utf-8') + def toString(self): + self.response=self.response.replace("$$SILPA_COPYRIGHT$$",getCopyrightInfo()); + return self.response + def getResponse(self): + self.response=self.response.replace("$$SILPA_COPYRIGHT$$",getCopyrightInfo()); + return self.response + def setBreadcrumb(self,navPath): + if(navPath): + html= "<div id=\"breadcrumb\"><a href=\"http://smc.org.in/silpa\">Home</a> /" + html=html+navPath+"</div>" + self.response=self.response.replace("$$SILPA_BREADCRUMB$$",html) + def setContent(self,value): + if(value): + self.response=self.response.replace("$$SILPA_CONTENT$$",value) + else: + self.response=self.response.replace("$$SILPA_CONTENT$$","") + def setErrorMessage(self,value): + if(value): + self.response=self.response.replace("$$SILPA_ERROR$$",value) + else: + self.response=self.response.replace("$$SILPA_ERROR$$","") + def setSuccessMessage(self,value): + if(value): + self.response=self.response.replace("$$SILPA_SUCCESS$$",value) + else: + self.response=self.response.replace("$$SILPA_SUCCESS$$","") + |