Hola a todos, Antes de todo, disculpad por el tocho, pero creo que esto puede ser de interés...
Allá por el 2005 tenía una pequeña consultora freelance con un compañero, y por necesidades de algunos clientes decidimos diseñar una herramienta de generación e impresión de informes. Fue nuestro primer desarrollo en este lenguaje (de hecho aprendimos python con ella :)), para python 2.3, creo recordar, y dadas esas circunstancias, como comprendereis, la calidad y limpieza del código ni su diseño no eran ninguna maravilla :) La estuve manteniendo, depurando cosillas y mejoras hasta aproximadamente principios del 2007, que se abandonó porque estos clientes implementaron otro software que ya traía su propio gestor de informes; por simple tema de falta de tiempo, y pese a que la solución tenía muchísimas posibilidades, la abandoné y ha quedado almacenada en mi SVN todo este tiempo, hasta hace un par de semanas que, haciendo limpieza de mis servidores personales, me encontré el código, y como creo que tiene muchas posibilidades con un poco de trabajo en ella, he hablado con mi antiguo compañero para publicarlo como GPL, con él como coautor, claro, y no ha puesto mayor problema al respecto. Me surgen entonces las siguientes dudas: - Licencia: ¿qué problemas pueden surgir? Estoy desconectado desde hace un tiempo del mundillo del software libre, y ya no me acuerdo si alguno de los módulos usados (4Suite, Reportlab) podría afectar en la publicación de la solución en GPL. - Tecnología: ¿hay soluciones mejores, o más eficientes, para el procesamiento de los XML, XSLT, o mejores que reportlab? - Repositorio: ¿qué forja debería usar para publicarlo? A nivel técnico, el programa habría que revisarlo, dándole posibilidades en cuanto a parámetros de entrada, posibles salidas, una buena refactorización y puesta al día del código (os recuerdo que fue nuestro primer software python, aprendimos python con él...) etc., dado que ahora mismo lo que hace es un proceso de 1 única vía: coge xml -> transforma XSL -> genera RML -> convierte con reportlab -> almacena / imprime. La solución en sí es muy sencilla: coge un fichero XML con datos, lo procesa mediante XSLT, genera un documento RML y lo procesa con Reportlab para generar el PDF final (y enviarlo a impresora o guardarlo). Aparte de reportlab, se usaba 4Suite para el procesado de XML, el motor XSLT y, por supuesto, Reportlab. Sin embargo, a nivel características era muy potente gracias a Reportlab: se podían generar auténticas "virguerías" a nivel de informes, con la complejidad que se requiriese; sólo deciros que fuimos capaces de conseguir generar, punto por punto, línea por línea, imagen por imagen, todos los tipos de informes usados por 3 empresas de distintos tamaños (hablamos de facturas, informes internos, albaranes, etiquetado para logística, etc.) eliminando el uso de los formularios pre-impresos que venían usando, sin que se notase el cambio. Eso sí, el mayor problema (y donde se consumía el tiempo) era en la parte del diseño de las plantillas XSL y RML, que no habíamos escrito un software de diseño de las plantillas, y se hacía a mano :) Por otro lado, no era una maravilla en velocidad: un informe normal tardaba alrededor de 1-1.5 segundos en estar en pantalla, un informe muy largo (más de 20 páginas) o muy complejo... pues imaginaos. La parte más lenta era la de transformación XML/XSLT (incluido el parseo y validación del XML); después de esto iba bastante bien, aunque reportlab en aquel momento no eran tampoco la panacea en velocidad. Bueno, creo que ya me he explayado bastante por ahora, para lo que eran unas simples preguntas; cualquier recomendación, consejo, interés en el proyecto, o preguntas, aquí me tenéis. No os cortéis :) Saludos
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/