From 925ba08ecb3ff12496d343a1a0a99daf9a32ad3d Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Tue, 24 Mar 2009 21:53:02 +0530 Subject: Adding Silpa framework --- silpa/common/silparesponse.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 silpa/common/silparesponse.py (limited to 'silpa/common') diff --git a/silpa/common/silparesponse.py b/silpa/common/silparesponse.py new file mode 100644 index 0000000..96f8c1e --- /dev/null +++ b/silpa/common/silparesponse.py @@ -0,0 +1,19 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +from templates import * +class SilpaResponse: + def __init__(self): + self.response =getBaseHTML() + + def toUnicode(self): + return self.response.encode('utf-8') + def toString(self): + return self.response + def getResponse(self): + return self.response + def setBreadcrumb(self,navPath): + html= "
Home /" + html=html+navPath+"
" + self.response=self.getResponse().replace("$$SILPA_BREADCRUMB$$",html) + def setContent(self,value): + self.response=self.getResponse().replace("$$SILPA_CONTENT$$",value) -- cgit From cafcffbb7412d8a80200d288d6819bd4a6779399 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Thu, 26 Mar 2009 22:42:30 +0530 Subject: Adding plugin manager --- silpa/common/modulemanager.py | 33 +++++++++++++++++++++++++++++++++ silpa/common/silpamodule.py | 14 ++++++++++++++ silpa/common/silparesponse.py | 31 ++++++++++++++++++++++++------- 3 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 silpa/common/modulemanager.py create mode 100644 silpa/common/silpamodule.py (limited to 'silpa/common') 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() + diff --git a/silpa/common/silpamodule.py b/silpa/common/silpamodule.py new file mode 100644 index 0000000..8a35f2d --- /dev/null +++ b/silpa/common/silpamodule.py @@ -0,0 +1,14 @@ +#! /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" diff --git a/silpa/common/silparesponse.py b/silpa/common/silparesponse.py index 96f8c1e..8507ccc 100644 --- a/silpa/common/silparesponse.py +++ b/silpa/common/silparesponse.py @@ -1,19 +1,36 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -from templates import * +from utils import * class SilpaResponse: def __init__(self): - self.response =getBaseHTML() - + 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): - html= "
Home /" - html=html+navPath+"
" - self.response=self.getResponse().replace("$$SILPA_BREADCRUMB$$",html) + if(navPath): + html= "
Home /" + html=html+navPath+"
" + self.response=self.response.replace("$$SILPA_BREADCRUMB$$",html) def setContent(self,value): - self.response=self.getResponse().replace("$$SILPA_CONTENT$$",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$$","") + -- cgit From c5368252e3091368ae55475757ed3134d6f84249 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Sun, 29 Mar 2009 17:59:40 +0530 Subject: new modules --- silpa/common/__init__.py | 6 ++++++ silpa/common/silpamodule.py | 2 ++ silpa/common/silparesponse.py | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 silpa/common/__init__.py (limited to 'silpa/common') 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/silpamodule.py b/silpa/common/silpamodule.py index 8a35f2d..7c5a538 100644 --- a/silpa/common/silpamodule.py +++ b/silpa/common/silpamodule.py @@ -12,3 +12,5 @@ class SilpaModule: 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 index 8507ccc..13cc5ca 100644 --- a/silpa/common/silparesponse.py +++ b/silpa/common/silparesponse.py @@ -15,7 +15,7 @@ class SilpaResponse: return self.response def setBreadcrumb(self,navPath): if(navPath): - html= "
Home /" + html= "
Home /" html=html+navPath+"
" self.response=self.response.replace("$$SILPA_BREADCRUMB$$",html) def setContent(self,value): -- cgit From 35efb56d790b122c6d0f7f588641fc2f15f5122b Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Thu, 16 Apr 2009 20:48:51 +0530 Subject: Module info introspection --- silpa/common/modulemanager.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'silpa/common') diff --git a/silpa/common/modulemanager.py b/silpa/common/modulemanager.py index 028c4ae..8f9c79d 100644 --- a/silpa/common/modulemanager.py +++ b/silpa/common/modulemanager.py @@ -9,16 +9,21 @@ class ModuleManager: 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) + try: + obj = getattr(obj,part) + except: + obj = None return obj def getModuleInstance(self,action): module_name = self.find_module(action) if(module_name): - return self.import_module(module_name).getInstance() + try: + return self.import_module(module_name).getInstance() + except: + print dir(self.import_module(module_name)) else: return None def find_module(self,action): @@ -26,6 +31,15 @@ class ModuleManager: return getModulesList()[action] except: return None + def getModulesInfoAsHTML(self): + module_dict=getModulesList () + response = "

Available Modules

" + response = response+"" + for action in module_dict: + module_instance=self.getModuleInstance(action) + response = response+"" + response = response+"" + return response+"
ModuleDescriptionStatus
"+module_instance.get_module_name()+""+module_instance.get_info()+"OK
" if __name__ == '__main__': mm=ModuleManager() print mm.getModuleInstance("lemmatize") -- cgit From 550f1ef9f4cd12f6a75090fa14490effc1230631 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Wed, 22 Apr 2009 23:42:35 +0530 Subject: Bug Fixes --- silpa/common/modulemanager.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'silpa/common') diff --git a/silpa/common/modulemanager.py b/silpa/common/modulemanager.py index 8f9c79d..a3e9f1b 100644 --- a/silpa/common/modulemanager.py +++ b/silpa/common/modulemanager.py @@ -18,6 +18,7 @@ class ModuleManager: return obj def getModuleInstance(self,action): + action=action.replace(" ","_") module_name = self.find_module(action) if(module_name): try: @@ -37,8 +38,12 @@ class ModuleManager: response = response+"" for action in module_dict: module_instance=self.getModuleInstance(action) - response = response+"" - response = response+"" + if(module_instance!=None): + response = response+"" + response = response+"" + else: + response = response+"" + response = response+"" return response+"
ModuleDescriptionStatus
"+module_instance.get_module_name()+""+module_instance.get_info()+"OK
"+module_instance.get_module_name()+""+module_instance.get_info()+"OK
"+action.replace("_"," ")+"Error while retrieving module detailsFail
" if __name__ == '__main__': mm=ModuleManager() -- cgit From f1182c8bc123e9b6690f3fbdc0021468e60ba05d Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Tue, 12 May 2009 20:40:32 +0530 Subject: Various fixes on silpa and new modules-Inexact search --- silpa/common/modulemanager.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'silpa/common') diff --git a/silpa/common/modulemanager.py b/silpa/common/modulemanager.py index a3e9f1b..c6185dd 100644 --- a/silpa/common/modulemanager.py +++ b/silpa/common/modulemanager.py @@ -35,15 +35,15 @@ class ModuleManager: def getModulesInfoAsHTML(self): module_dict=getModulesList () response = "

Available Modules

" - response = response+"" + response = response+"
ModuleDescriptionStatus
" for action in module_dict: module_instance=self.getModuleInstance(action) if(module_instance!=None): - response = response+"" - response = response+"" + response = response+"" + response = response+"" else: response = response+"" - response = response+"" + response = response+"" return response+"
ModuleDescription
"+module_instance.get_module_name()+""+module_instance.get_info()+"OK
"+module_instance.get_module_name()+""+module_instance.get_info()+"
"+action.replace("_"," ")+"Error while retrieving module detailsFail
Error while retrieving module details
" if __name__ == '__main__': mm=ModuleManager() -- cgit