viernes, enero 26, 2007

Mas sobre cssutils

Antes de nada indicar que estoy usando la distribución 0.9.1b3 de cssutils.

Tests
En teoria los test podriamos ejecutarlos tras hacer una build del paquete, o incluso tras descomprimirlo. Mediante:

python setup.py test

Pero por lo que sea no me ha funcinado. Bueno no pasa nada... podemos lanzar los test desde el directorio de tests (../src/cssutils/tests) de la siguiente manera (en 'kk' tendremos la salida):

for i in test_*.py; do echo $i >> kk; python $i >> kk 2>&1; done

Veremos que aparecen trazas de error. No pasa nada. Lo importante es que el test nos devuelva OK.

encutils

cssutils tiene un paquete, encutils, a tener en cuenta.
La funcion principal es getEncodingInfo que devuelve informacion sobre le encoding. Esta informacion se extrae del elemento pasado: headers de HTTPResponse, XML declaration y lementos meta X/HTML.
Resumiendo podemos pasar un HTTPResponse o un texto como argumento.
Aunque no la he probado, parece currada.

csscapture
Permite extraer todos las hojas de estilo de una url determinada (incluyendo las que estan embebidas en la propia página html).
Usa HTMLParser.

El parseo (interioridades)
El parser desencadena el parseo al asignar el texto del css al objeto CSSStylesheet.
Para realizar el parseo se usa tokenizer.CSSTokenizer.
El único pero que veo a cssutils es que es un poco lento con el parseo. Necesitamos mas velocidad. No se si se podrá obtimizar algo... He estado echando un vistazo rápido pero el codigo no es sencillo.
Habrá que meteler el profiler, a ver si hay algo que canta.

No hay comentarios: