2009-12-30 21 views
9

Tenemos una herramienta C++ más antigua que genera código python automáticamente. Traté de buscar en la herramienta de origen de C++, hoy y casi quería dispararme a mí mismo. Lo que quiero hacer es limpiar la fuente creada por la herramienta y vincular las clases a nuestro sistema interno de documentación añadiendo etiquetas sphinx.Analizando el código de Python desde dentro de Python?

Ahora lo que me pregunto es si hay algún tipo de herramienta maravillosa para analizar el código python dentro de python?

Hay un montón de cosas como esta:

foo._methods_.append() 

Snip 500 lines 

foo._methods_.append() 

alguna sugerencia?

Básicamente tengo una estructura de código funcional pero desastrosamente desordenada, básicamente quiero extraer ciertos fragmentos, moverlos a sus propios archivos. Y limpie todas las cosas misceláneas que se crean.

Miré quickyl en el analizador y AST pero no puedo encontrar ningún ejemplo real de su uso.

Respuesta

3

Dependiendo de sus necesidades, es posible que también desee comprobar hacia fuera la biblioteca 2to3. Fue escrito para facilitar automáticamente la conversión de las aplicaciones Python 2.x a Python 3.0, por lo que su caso de uso principal es tomar un archivo fuente de Python, realizar algunas transformaciones en él y luego escupir el archivo fuente del resultado.

Uno de los beneficios que lib2to3 tiene sobre el módulo ast es que ast no preserva el espacio en blanco y los comentarios, mientras que lib2to3 sí lo hace. Si ya está tratando con código autogenerado, esto podría no ser un problema para usted.

1

Pruebe una de las utilidades de generación de documentos de Python para ver si esto podría ayudarlo con su problema general. He usado epydoc con gran éxito.

O si puede conseguir que su jefe se separe de $ 200, compre una copia de Enterprise Architect de SparxSystems. Ingeniería inversa de su código de Python, generar un diagrama de clase, y le permitirá hacer clic en el diagrama de clase y ver el código subyacente. Funciona para muchos idiomas además de Python, y una excelente utilidad de diseño y documentación. (Hay una versión de $ 99, pero esto no incluye la capacidad de importación de código.)

Cuestiones relacionadas