Campaña Ropa Limpia es una red de asociaciones cuyo objetivo es “mejorar las condiciones de las personas trabajadoras de la industria global de la confección”. Para la difusión de su trabajo cuentan con el sitio ropalimpia.org. Este sitio estaba construido sobre una aplicación personalizada sobre el lenguaje PHP. Junto a nuestros socios de FreePress migramos la web desde esa aplicación al sistema Wordpress (construido también con el lenguaje de programación PHP).
En la fase inicial de la migración, se sacaron los datos de la aplicación personalizada utilizando la funcionalidad de introspección de bases de datos del ORM (Object Relational Mapping) Peewee [1] (programada en el lenguaje Python). Esta funcionalidad genera modelos automáticamente desde las tablas para utilizarse al momento y realizar consultas expresivas, insertados, etc. fácilmente sin necesitar de escribir secuencias SQL. Un ejemplo de consulta sería:
CrlTestimonios().select().where(visible == 1)
Los resultados de las consultas realizadas con Peewee son datos y objetos python fácilmente manipulables.
Los datos obtenidos de esta manera se han introducido en el Wordpress usando el API XML-RPC que nos ofrece el propio Wordpress, usando una librería Python [2], tanto los posts como la creación de recursos multimedia.
Previamente se limpiaba el contenido usando una librería de limpieza HTML liberada por la fundación Mozilla llamada Bleach [3]. Esta limpieza evita que código HTML extraño en los contenidos migrados puedan afectar negativamente al diseño y estilo realizado por FreePress.
Aunque parezca ridículo el utilizar para una migración un lenguaje diferente a los del gestor de contenidos de origen y destino, sin embargo un código ad-hoc (“custom” que llamamos o personalizado), aunque sea utilizando PHP Symfony como es el caso, es tan diferente de comprender y revertir del API de Wordpress como ambos lo son de Python.
La consistencia de las aplicaciones en Python acelera el proceso, junto con una documentación frecuentemente más clara que sus homólogas en PHP (por ejemplo, Doctrine ORM para PHP [4]). En general esto demuestra que uno de los grandes nichos de Python es precisamente la de “pegamento” (glue) para unir o trasvasar datos entre sistemas heterogéneos.