automatic code generation

lasizoillo lasizoillo en gmail.com
Jue Abr 23 02:15:23 CEST 2009


El día 22 de abril de 2009 20:11, Jose Caballero
<jcaballero.hep en gmail.com> escribió:
> Hola,
>
> me gustaría saber si alguien conoce alguna web donde pueda encontrar scripts
> parar generar código (python) basado en plantillas. He buscado en google
> pero sólo encuentro comentarios sobre las virtudes (o los riesgos) de la
> generación automática de código, pero no ejemplos útiles. Probablemente no
> estoy haciendo bien la búsqueda.
>

Una de las herramientas que uso para generar código es paster. No solo
mete texto en un fichero, sino que crea la estructura completa de un
proyecto. Es lo que usa pylons (entre otros) para generarte la base de
los proyectos, los controladores, ...

http://pythonpaste.org/script/developer.html#templates

Normalmente, si tienes que repetir código es que estás haciendo algo
mal. Pero en estos casos, como el de pylons, lo veo totalmente
correcto.


Cog es otra herramienta que se puede usar para generar código. Pero
este más en plan plantilla:
http://nedbatchelder.com/code/cog/

> Y quiero evitar reinventar la rueda. Seguro que cualquier cosa que yo pueda
> imaginar ya está hecha.
>
> Si alguien tiene links a buenos ejemplos, estaré más que agradecido. Nota:
> busco scripts para la shell (mi IDE es vim).
>

Durante un tiempo usé vimplate:
http://www.vim.org/scripts/script.php?script_id=1311

Pero la verdad es que no tengo suficiente codigo plantillable como
para que crea que tiene sentido. Aunque he estado tentado más de una
vez para determinadas labores, en plan ayudas para definir el modelo
sqlalchemy o similar. Pero solo me serviría para insertar cosas, a la
hora de modificar no me ayudaría gran cosa. En Java si que el vimplate
me hacia más labor, ya que el codigo de java es altamente repititivo.

Algunos hacks de vim que te pueden ser utiles son los siguientes:
* Cuando crees un fichero con estensión py que le ponga:
  * El Shebang => #!/usr/bin/python
  * La codificacion => # -*- encoding: utf-8 -*-
  * Comentarios de configuracion vim y emacs => # vim:ts=4:sw=4
  * ... licencia, datos del autor, ...
Normalmente los ficheros setup.py se parecen mucho entre si, pero los
.py tienen unas cuantas lineas que te puedes ahorrar de escribir.

El omnicomplete de python es algo que tampoco uso nunca. No me
terminan de gustar sus recomendaciones y me incomoda más de lo que me
ayuda.

Así que lo unico que te recomiendo es una plantilla de vim para crear
los buffers y hecharle un ojo al paster si vas a hacer algo que
requiera montar un esqueleto rápido (como lo es hacer un paquete de
python que se convierta en un egg).

Un saludo:

Javi

>
>
> Gracias por adelantado.
>
> Saludos,
> Jose
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es