2010-07-13 15 views
6

Aunque esta pregunta es muy popular aquí en StackOverflow, después de pasar un tiempo aquí y en Google, todavía no he encontrado una respuesta concreta sobre cuál es la forma más adecuada de consumir SOAP en Python 3.Cliente SOAP para Python 3

Eché un vistazo a Does a Python 3 SOAP client module exist?, y espero que esté desactualizado y hoy puede haber aparecido alguna solución a esto.

estaba pensando en algunas ideas:

  1. Usar secuencia de comandos 2to3 al puerto algunas bibliotecas existentes a Python 3 (con jabón, espuma, etc.).
  2. carga un módulo externo, por tecnologías (Py3k + Jython, Py3k + Python 2.6, etc.)
  3. Escribir en clases de Python hardcode que corresponde a las definiciones de archivos WSDL (lo que implica en estrecho acoplamiento/alto mantenimiento) mezclar .
  4. Escriba el software en Python 3.0, llame a las funciones del módulo "python2.6-only" a través del execnet package. Lo cual requiere que Python 2.6 esté instalado en la máquina y que el software escrito en Python3.0 sea un binario congelado.

¿Alguna idea?

Gracias de antemano

Respuesta

1

que probablemente comience probando su puerto de 2to3 sugeridas. Por muchas cosas, funciona bastante bien. Todavía supongo que valdría un día o dos de trabajo convertir algo así como espuma.

+0

No creo que esta solución funcione, 2to3 se diseñó para realizar traducciones simples como impresiones, excepciones, importaciones absolutas, etc. De lo contrario, supongo que se lanzará un cliente SOAPy para py3k. ¿No estás de acuerdo? –

+0

@ Eduardo: yo no. He visto algunos módulos de Python (incluidos algunos bastante complejos) que establecen específicamente que su mecanismo de transición oficial es garantizar que 2to3 funcione tan bien como sea posible en su base de código. Notará la documentación para 2to3 (http://docs.python.org/library/2to3.html) especifica que "La biblioteca estándar contiene un conjunto completo de arregladores que manejarán casi todos los códigos". –

+0

2to3 funciona bastante bien para muchas bases de código. Los lugares donde se descomponen son donde los autores intentaron ser demasiado astutos y utilizar usos extraños. Si el código está escrito en un estilo pionero, directo, 2to3 a menudo hace una gran parte del trabajo. –