[Python-es] Dudas para la publicación (GPL) de una herramienta python de reporting

Luis Miguel Morillas morillas en gmail.com
Jue Dic 16 20:06:27 CET 2010


El día 16 de diciembre de 2010 13:26, Francesc Alted
<faltet en pytables.org> escribió:
> A Thursday 16 December 2010 12:26:48 Alberto Curro escrigué:
>> 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 :)
>
> Vaya, que casualidad.  Justamente otro compañero y yo hicimos
> básicamente lo mismo, pero en el 2008 :)
>
>>   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.
>
> Nosotros elegimos GPL ya que dependiamos de una libreria GPL (creo que
> era pyinotify).  Mi consejo es que, debido a la naturaleza viral de GPL
> la evites si puedes (BSD o MIT van muy bien: sencillas y no pretenden
> imponer la libertad).  Sin embargo, hay que decir que mucha gente se
> siente a gusto con la GPL y la elige a propósito (no es mi caso).
>
>>   - Tecnología: ¿hay soluciones mejores, o más eficientes, para el
>> procesamiento de los XML, XSLT, o mejores que reportlab?
>
> Hombre, hay infinitas :-)  Nosotros por ejemplo no usamos XML para nada.
> Nos inventamos nuestro propio sistema de plantillas para generar los
> PDFs a partir de ficheros texto y un fichero de control (o formato)
> parecido a:
>
>    [task]
>    doctype = Factura amb copia
>    input_encoding = cp850
>    output_name = Factura #123
>    ncopies = 2
>    host = dept-comptabilitat
>    barcode = 123a20080619
>
>    [copy]
>    dir = /el/meu/directori
>
>    [email]
>    from = pdflistings en exemple.com
>    to = paco en ferrer.es
>    subject = Factura #123
>    bcc = factures en exemple.com
>
> Por supuesto, se podian definir plantillas en PDF que se superinponian
> al listado definitivo.  Como ves, no hay XML, así que va como un tiro.
>
>>   - Repositorio: ¿qué forja debería usar para publicarlo?
>
> No infinitas, pero muchas, así que tendrás que elegir una.  Yo
> últimamente me he decantado por github.com (aunque eso te obliga a usar
> git como controlador de versiones).
>
>>   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.
>
> Aparte de esto, el nuestro también envia por e-mail y fax (aparte de
> otros posibles métodos definidos por el usuario).
>
>>   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.
>
> Ahi el nuestro no es tan flexible.  Simplemente se pasa texto a PDF
> diciéndole el tamaño del papel y el número de filas y columnas que iban
> a caber.  Simple, pero efectivo.
>
>>   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.
>
> Más lento parseando XML que el propio reportlab renderizando?  Creo que
> se me han ido las ganas de trabajar con XML de por vida :-)  Recuerdo
> claramente que nuestro cuello de botella era el reportlab, y se podian
> alcanzar velocidades de varios informes (de entre 1 y 10 pags) por
> segundo.
>
>>    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
>> :)
>
> Ya ves que compartimos sinergias :-)  Nuestro paquete es libre, pero no
> está disponible en la red básicamente por el coste de crear el
> repositorio y hacer una página medio decente explicando el asunto
> (cuesta bastante tiempo, y si nadie te lo subvenciona pues...).  De
> todas maneras, si quieres echarle un vistazo, puedes descargar el
> paquete de:
>
> http://www.pytables.org/temporal/pdflistings-0.6.1.dev.tar.gz
>

--> 403 Forbidden

-- lm

> Saludos,
>
> --
> Francesc Alted
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>


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