从WSDL文件中为自动完成生成显式代码?

问题描述:

我在某个项目中使用the suds library作为SOAP客户端。 我想知道是否有一种方法根据WSDL文件生成Python代码。从WSDL文件中为自动完成生成显式代码?

例如,请考虑下面的线是从WSDL文件:

<operation name="GetLastTradePrice"> 

然后,我想在一些.py文件,以获得自动生成的功能

def GetLastTradePrice... 

的目的那就是为了能够知道我拥有客户时可能的功能和特性。这意味着,如果我会写:

from suds.client import Client 
client = Client(SOME_URL) 

然后键入folloewing

client.service. 

我会得到自动完成GetLastTradePrice的选项之后。

+0

出于兴趣,Python REPL autocompletion框架足够灵活,可以根据对象的状态动态更改自动完成选项吗?在交互式编程环境中(如REPL),这将允许输入“client.service”。动态调出在先前步骤中初始化客户端时已解析的Web服务方法列表。 –

Ye olde ZSI库可以根据WSDL定义生成Python代码,但与泡沫相比,使用它非常痛苦,并且需要另一个称为PyXML的旧模块。我会坚持泡沫,自动完成是不值得的。

python有很多SOAP服务器实现,其中一些比其他实现更有用,在PyPI上搜索与SOAP相关的包,或者查看python.org上有关web services的wiki页面。基本上有两种类型的SOAP服务器的Python:

  1. 服务器,可以生成WSDL文件(如ZSI),可以从服务类中的方法直接产生WSDL
  2. 服务器服务器存根(如soaplib,拉冬)