Mercurial > repos > uga-galaxy-group > webservice_toolsuite_v1_1
diff WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py @ 0:049760c677de default tip
Galaxy WSExtensions added successfully
author | uga-galaxy-group |
---|---|
date | Tue, 05 Jul 2011 19:34:18 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/clientGenerator/wsdl2path.py Tue Jul 05 19:34:18 2011 -0400 @@ -0,0 +1,81 @@ +''' +@author Rui Wang +@see LICENSE (MIT style license file). +''' + +import os +import sys; +from ZSI.generate.commands import wsdl2py + +__author__="Rui Wang" + +class wsdlLoader: + '''all methods to load wsdl from file/url''' + + def wsdlUrl2path(self, url, folderName): + '''given wsdl url, folder name + create a folder under current directory, + invoke wsdl2py + return the path of generated python file by wsdl2py''' + + path=os.path.join(os.getcwd(), folderName) + if not os.path.isdir(path): + os.mkdir(path) + + fileOb=open(os.path.join(path,'__init__.py'), 'a') + fileOb.close() + wsdl2py([url, '-o', path]) #zsi 2.1 + #wsdl2py(['-u',url, '-o', path]) #zsi 2.0 + + #get path required by creatorEngine.py, such as: blast.WSWUBlast_services, WSWUBlast_client + pyFileList=os.listdir(path) + for f in pyFileList: + if f.endswith('_client.py'): #zsi2.1 + #if f.endswith('_services.py'): #zsi2.0 + importPath=folderName+'.'+f[:-3] + break + + return importPath + + def wsdlFile2path(self, filePath, folderName): + '''given wsdl file path, folder name + create a folder under current directory, + invoke wsdl2py + return the path of generated python file by wsdl2py''' + path=os.path.join(os.getcwd(), folderName) + if not os.path.isdir(path): + os.mkdir(path) + else: + print 'Warning: writing files into an already existed path!!!!' + + fileOb=open(os.path.join(path,'__init__.py'), 'a') + fileOb.close() + wsdl2py([filePath, '-o', path]) +# wsdl2py(['-f',filePath, '-o', path]) + + #get path required by creatorengine.py, such as: blast.WSWUBlast_services + pyFileList=os.listdir(path) + for f in pyFileList: + #if f.endswith('_client.py'): #zsi2.1 + if f.endswith('_services.py'): #zsi 2.0 + importPath=folderName+'.'+f[:-3] # f[:-3] will take off the .py extention + break + + return importPath + +#testing this module +if __name__=="__main__": + test=wsdlLoader() + test.wsdlUrl2path('http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl','blast') + #print test.wsdlFile2path('..\\wsdl\\WSWUBlast.wsdl', 'blast') +# print test.wsdlFile2path('..\\wsdl\\picr.wsdl', 'picr') + +# print test.wsdlFile2path('..\\wsdl\\WSDbfetch.wsdl', 'dbfetch') + +# print test.wsdlFile2path('..\\wsdl\\NewGeneByLocation.wsdl', 'gbLocation') + + +#'http://www.ebi.ac.uk/Tools/webservices/wsdl/WSWUBlast.wsdl' +#'-u http://www.ebi.ac.uk/Tools/webservices/wsdl/WSDbfetch.wsdl' +#-o OUTPUT_DIR +#-b add convenience functions for complexTypes, including Getters, Setters, factory methods, and properties (via metaclass). *** DONT USE WITH --simple-naming