Saltar al contenido

python

Python logger: Deja de ensuciar la salida por consola

Algo muy común (y que yo hago a menudo) es poner muchos prints a la hora de hacer debug, para saber donde las cosas van bien y dónde se empiezan a desviar del resultado esperado. Luego, quitarlos, no es mucho trabajo, pero si las cosas vuelven a ir mal, pues toca meterlos de nuevo. He descubierto no hace mucho la librería logging, que viene por defecto incluida (forma parte del batteries included!) en python. Tiene varios niveles de salida, según la importancia de lo que estemos notificando. Podríamos utilizarlo con opciones para que el programa muestre una salida de información extra (verbose) determinada, tal y como se comenta por StackOverflow.… Leer más »Python logger: Deja de ensuciar la salida por consola

[Tip]Resolver una ecuación en Sage

Sage, para quienes no lo conozcan es un sistema de cálculo avanzado y muy complejo, similar a Mathematica, Matlab o Maple. Si por ejemplo queremos resolver una ecuación del tipo , solo hay que hacer lo siguiente: solve( x^2 – 2 == 0, x) En esta función observamos dos argumentos: la propia función y x. Este último argumento indica a sage que es una variable. Si tenemos un sistema de ecuaciones como éste, debemos meter las dos ecuaciones en un array, definir las variables a usar, y meter los datos en la función «solve»: var(‘x,y’) solve ([3*x + 2*y == 47, 9*y – 6*x == 4*x], x,y) Un buen lugar… Leer más »[Tip]Resolver una ecuación en Sage

Solucionado: Problema con bzr builddeb y python (MANIFEST.in)

Mucho tiempo (quizás años) llevaba arrastrando el dilema de que cuando ejecutas bzr builddeb, te encuentras un problema: «Las fuentes han cambiado, ejecuta dpkg-source –commit para integrarlas en nosequé de un parche quilt» y te sale una bonita ristra de ficheros que no has incluido concienzudamente en el archivo de instalación de python setup.py. Si los borras, malo, si los dejas, también, si haces un parche quilt te vale sólo la primera vez que consigues acordarte y eso si tienes tiempo para ver cómo narices funciona. Ya me imaginaba que los tiros iban hacia el archivo MANIFEST, que «dicta» todos los ficheros que deben incluirse en las fuentes. Pero cada… Leer más »Solucionado: Problema con bzr builddeb y python (MANIFEST.in)

[Python] BeautifulSoup extrae código de una sopa de etiquetas HTML

Es posible que como desarrollador te hayas enfrentado alguna vez al «reto» de extraer información (del tipo que sea) de una página web. Es muy sencillo cuando eres «humano», pero un robot… No, no es tan fácil. Imaginemos, por ejemplo que quisiéramos almacenar el número de artículos que tiene la Wikipedia en Español en un determinado momento. La forma más fácil es visitar la página destinada a tal efecto y, en la tabla, leer el número correspondiente y escribirlo (por ejemplo, en un archivo de texto). Pero la tarea se puede hacer muy tediosa (y de hecho lo es). Pero nosotros no estamos aquí para hacer un trabajo de chinos.… Leer más »[Python] BeautifulSoup extrae código de una sopa de etiquetas HTML

Pimagizer 0.3

Hace algo de tiempo lanzé la versión 0.2 de pimagizer, cuya entrada está en los archivos del ya traspasado Usemos Linux. En esa versión añadía correcciones a algunos errores que había en versiones anteriores, y facilitaba el permitir que aquellas personas que quisiesen sobreescribir las imágenes, pudieran. Esta versión 0.3 permite, entre otras muchas cosas, abrir un conjunto de imágenes y hacer acciones sobre dicho conjunto. Permite ajustar el tamaño en píxeles de todas las imágenes a la vez si estas son de la misma resolución, pero si son de distinta resolución, te deja ajustar el tamaño en porcentaje. Además, también te permite cargar una vista previa con las imágenes… Leer más »Pimagizer 0.3

Cómo hacer funcionar un Gtk.spinner usando Pygobject (Python y Gtk)

Tras mucho tiempo buscando la solución, hoy la he encontrado en stack overflow. Una solución simple es llamar constantemente a este código dentro de la función que queremos llevar a cabo. Esto a veces no es posible. Para hacerlo sin lo anterior, necesitamos usar elementos que la librería Gtk nos ofrece. La función clave que realiza esto es GObject.idle_add(callback,[args]). Aún así también necesitaremos usar elementos como los threads de python para llevar a cabo nuestro objetivo. Os dejo un ejemplo del código funcional. La función callback (funcion_callback) va a ser la función que se ocupe de recibir el resultado proporcionado por la función cerebro. Este es el resultado final que… Leer más »Cómo hacer funcionar un Gtk.spinner usando Pygobject (Python y Gtk)

Colores para Geany 1.22

No me ha sido demasiado fácil (al menos tanto como yo esperaba), así que dejo lo mejor que he encontrado (y que me ha funcionado) de esquemas de color para Geany. Es un repo en Github, pero lo que hacéis es descargaros el zip y descomprimirlo en la carpeta «~/.config/geany». Bueno, en realidad lo único que nos interesa es la carpeta colorschemes, pero por si al lector le resulta más cómodo. Son un conjunto en total de 21 colores. Uno de ellos, se parece a más no poder al tema por defecto de Sublime Text: Monokai. El resto, son también muy buenos. La imagen de arriba tiene el código de… Leer más »Colores para Geany 1.22

El libro de Django en Epub

Pues ando un poco aprendiendo Django para hacer funcionar una web, y de momento, el mejor que he encontrado en español ha sido El libro de Django, una traducción del original The Django book. He encontrado las fuentes en español en Google Code, según pone en la página del proyecto, bajo una licencia libre. Os dejo el enlace por si acaso queréis descargarlo y compilarlo vosotros también, usando sphinx. Os dejo un enlace por si queréis echarle un vistazo al repo de github, pero no he conseguido compilar nada, ya aviso 😉 https://github.com/saul-g/El-libro-de-Django/ http://code.google.com/p/el-libro-de-django/ Para obtenerlo, si queréis un PDF, podéis ir a OpenLibra, o si queréis el libro en… Leer más »El libro de Django en Epub