Creación de documentos con Docutils y reST

Introducción

Hoy vamos a ver una introducción a cómo crear documentos utilizando Docutils y el lenguaje de marcado reStructuredText, o simplemente reST. El proyecto Docutils nació en la década de los años 2000 como parte del esfuerzo para mejorar la documentación del lenguaje Python, y en los últimos años tanto el lenguaje reST como las herramientas para procesarlo se han convertido en una manera excelente no sólo de documentar proyectos en Python, sino también en otros lenguajes o para escribir documentos que nada tienen que ver con la programación.
Docutils es compatible con Python 2.4 en adelante y funciona en Windows, Mac OS X y Linux. Para instalarlo en cualquiera de estos sistemas operativos, no tienes más que seguir el procedimiento habitual para instalar paquetes Python:

  1. Descargar el código fuente desde la web de Docutils y extraerlo.
  2. Escribir desde un terminal python setup.py install. Este paso puede requerir privilegios de administrador.

El lenguaje reST

El lenguaje reStructuredText o reST es un lenguaje de marcado de texto plano flexible y potente. reST tiene las ventajas de otros lenguajes de marcado de texto plano similares como Markdown, como puede ser la portabilidad: en cualquier sistema operativo y con cualquier editor de texto básico puedes abrir y modificar archivos de texto plano. Pero además, reST tiene otra serie de características que otros no tienen:

  • Es extensible: en reST puedes definir tus propios roles y directivas, de tal forma que puedes automatizar estructuras que utilices con frecuencia.
  • Está integrado con $latex LaTeX$: utilizando la directiva y el rol math, puedes incluir fácilmente ecuaciones matemáticas en tus documentos. Esto nos viene muy bien a los científicos e ingenieros 😉
  • Se puede exportar a múltiples formatos: HTML, $latex LaTeX$, man, ODT, XML, S5… y si lo necesitas se puede adaptar para exportarlo al formato que desees (como por ejemplo HTML5).

Uno de los objetivos de reST es que sea legible. La manera de marcar los encabezados y las secciones del documento hace que alguien que no conozca el lenguaje pueda leer perfectamente el contenido. Vamos a ver algunos ejemplos.
Leer más »Creación de documentos con Docutils y reST

Matrópolis

Aquí siempre andamos trasteando con código. Para relajar un poco el lado técnico del blog hoy os traemos una frikada que sabemos os gustará. Ya lo puso Juanlu hace unos días por nuestro twitter pero si no lo has visto aún, aquí lo tienes: “Matropolis: Científicos del mundo uníos (también… Leer más »Matrópolis

Manual de introducción a matplotlib.pyplot (IX): Miscelánea

Este artículo se actualizó el 2020/04/18 para usar las últimas versiones de las bibliotecas que se comentan. Esto pretende ser un tutorial del módulo pyplot de la librería matplotlib. El tutorial lo dividiremos de la siguiente forma (que podrá ir cambiando a medida que vayamos avanzando). Primeros pasos Creando ventanas,… Leer más »Manual de introducción a matplotlib.pyplot (IX): Miscelánea

The amazing Spyder, man!!!

Spyder es la abreviación de Scientific PYthon Development EnviRonment. Según la documentación oficial, Spyder es un potente entorno de desarrollo interactivo para Python con edición avanzada, ‘testeo’ interactivo y capacidades de introspección y depuración (debugging) y, esto es lo que nos interesa, un entorno de computación numérica gracias al soporte de IPython y de populares librerías como numpy, scipy y matplotlib (todas conocidas ya por aquí).
Se puede instalar tanto en Linux como en Windows (y en Mac para los amantes de Alcatraz). En el siguiente enlace podéis ver documentación para la instalación y los requerimientos previos para poder instalarlo.
En un vistazo general podemos ver que es muy adaptable a nuestras necesidades (o manías) permitiendo:

  • definir accesos rápidos,
  • Gestionar el PYTHONPATH de manera visual

  • Acceso a la documentación de las librerías más importantes (Numpy, Scipy, Matplotlib,…) desde la ayuda del propio IDE
  • Acceso directo a herramientas (y documentación) Qt.
  • Configuración del coloreado de la sintáxis
  • Podemos colocar los paneles como mejor nos convenga. En general, yo lo configuro con un explorador de archivos a la izquierda, el editor a la derecha y abajo cosas útiles como consolas, el historial, y el explorador de variables:
  • Pero con el mismo ratón se puede recolocar todo de forma sencilla y se puede elegir que aparece en la pantalla desde el menú ‘view | Windows and toolbars’:

Puedes ver más pantallazos en el siguiente enlace.
El editor en sí permite resaltar código Python, C/C++ y Fortran, completado de código, permite analizar el código con pylint, depurar con pdb (o winpdb), avisos y errores en tiempo real con pyflakes,… Lo mínimo que lleva hoy en día cualquier editor potente.
Leer más »The amazing Spyder, man!!!

Manual de introducción a matplotlib.pyplot (VIII): Texto y anotaciones

Este artículo se actualizó el 2020/04/18 para usar las últimas versiones de las bibliotecas que se comentan. Esto pretende ser un tutorial del módulo pyplot de la librería matplotlib. El tutorial lo dividiremos de la siguiente forma (que podrá ir cambiando a medida que vayamos avanzando). Primeros pasos Creando ventanas,… Leer más »Manual de introducción a matplotlib.pyplot (VIII): Texto y anotaciones

Probando numba: compilador para Python basado en LLVM

Introducción

Hace unos días Travis E. Oliphant, creador de NumPy e importante contribuidor de SciPy entre otras muchas cosas, anunciaba en su Twitter y en su blog la liberación de numba 0.1, un proyecto que pretende ser el mejor compilador orientado a arrays del mundo, como puedes ver en la presentación que dio en la conferencia SciPy 2012 celebrada en Austin, Texas (vídeo y diapositivas).


Aunque el proyecto está en una fase bastante precaria todavía y hay unos cuantos fallos pendientes de solucionar todavía, hemos hecho algunas pruebas y los resultados son impresionantes. Vamos a hablar un poco de numba y a explicar cómo puedes probarlo tú mismo.
Leer más »Probando numba: compilador para Python basado en LLVM

Cómo leer y escribir datos en archivos con NumPy

Introducción

Hoy vamos a ver rápidamente cómo leer datos desde un archivo con NumPy y también cómo escribirlos. Es algo a lo que tendremos que recurrir con mucha frecuencia, ya sea porque hemos recogido nuestros datos de un experimento y los tenemos almacenados en un fichero de texto, porque los hemos recibido por otras fuentes o porque queremos separar lo que es la lógica del programa de los datos con los que opera.
Ya comentamos hace tiempo cómo crear matrices en Python a partir de listas, utilizando rangos numéricos, etc. Lo bueno que tienen las funciones de NumPy que nos ayudan a desempeñar estas tareas es que no tenemos que preocuparnos por el manejo de ficheros con Python, así que leer o escribir será tan fácil como invocar una función.
En esta entrada se ha usado python 2.7.3 y numpy 1.6.2 y es compatible con python 3.2.3

Lectura

NumPy nos ofrece varias funciones para cargar datos en forma matricial, pero la que usaremos con más frecuencia es la función loadtxt. Su único argumento obligatorio es un nombre de archivo o un objeto file desde el que leer los datos.
Leer más »Cómo leer y escribir datos en archivos con NumPy

Manual de introducción a matplotlib.pyplot (VII): Tipos de gráfico (IV)

Este artículo se actualizó el 2020/04/18 para usar las últimas versiones de las bibliotecas que se comentan. Esto pretende ser un tutorial del módulo pyplot de la librería matplotlib. El tutorial lo dividiremos de la siguiente forma (que podrá ir cambiando a medida que vayamos avanzando). Primeros pasos Creando ventanas,… Leer más »Manual de introducción a matplotlib.pyplot (VII): Tipos de gráfico (IV)