Hernán Grecco: How many Pints do you want? Units in Python


Pint: **physical quantities**

I tried many of the Python Units packages available when I started adding physical quantities (magnitude and units) support to Lantz. There are really great packages out there providing NumPy support and a broad definition list including units and constants.

However these packages define the units within the Python code. This results in an unnecessary large and difficult to maintain package. Additionally, translation to other languages and changing to an incompatible system (eg. from SI to Gaussian) is impossible without changing the codebase.

Pint is a units package for Python that keeps the definitions in a separate text file.  The text file is really easy to read and modify, allowing you to update the unit definitions without changing the code. For each unit, you just type the relation with other units. Aliases can be added after the second equal. For example, here are the definitions of hour an minute:
hour = 60 * minute = h = hr
minute = 60 * second = min
It is very natural. Prefixes are also defined in the text file using a dash after them:
yocto- = 10.0**-24 = y-
It is worth noting that this is not a Python file that is evaluated but a text file that is parsed. The same is true for the units in your program. Therefore:
  1. Simple plural forms are automatically recognized. Once that you have defined meter, you don't need to define meters.
  2. All combinations of prefix + unit + singular/plural are recognized. Once that have you defined kilo and meter, you don't need to define kilometer nor kilometers.
The benefit is that the unit definition list is really small and maintainable (it also leads to some weird things like kiloinch being accepted, but at the end we are all consenting adults, right?)


The Quantity class contains two important attributes: magnitude and units. The magnitude can be any numeric type (int, float, decimal, fraction and even NumPy arrays). Mathematical operations between two magnitudes will be dispatched to the underlying types. In addition, ufuncs and ndarray methods are supported proving excellent NumPy integration.

A few other nice features:
  • A comprehensive default unit definition file (SI, English language) 
  • Advanced string formatting: a quantity can be formatted into string using PEP 3101 syntax. Extended conversion flags are given to provide latex and pretty formatting.
  • You instantiate and populate the unit registry. You can use the default unit definition file  or your own (replacing or appending).
  • Small and maintainable code base.
  • Python 2.7 and 3.X in a single codebase.
  • Full test coverage.
Interested? Install it and give it a try!

Read the docs: https://pint.readthedocs.org/


or fork the code: https://github.com/hgrecco/pint



Gustavo Campanelli: Parallella: SDK y primeras versiones

Tan solo un día después de escribir el post acerca de la intrigante computadora de nombre Parallella, se han producido grandes novedades, con los primeros vistazos acerca de que nos espera. Primero que todo, comenzaron los envíos de los prototipos de Parallella, para aquellas personas que aportaron 2500 dolares. Esto da acceso temprano a una plataforma que no tiene la forma final, de hecho es

Pycon Argentina: PostMortem de PyCon Argentina 2012

En el siguiente enlace se encuentra disponible el informe final o post-mortem de la conferencia PyCon Argentina 2012


Solamente los capítulos "Opiniones de speakers internacionales" y "Opiniones de sponsors" pueden llegar a modificarse en futuro (de todas maneras el numero de versión representa la fecha y hora de creación del documento)

Disclaimer del Balance:

El balance aun no se encuentra disponible por que aun el banco y SoLAr se encuentran tramitando un cheque (ya van 3 meses) provenientes del extranjero. Se prevee 15 días mas de papeles.

Gustavo Campanelli: Parallella: una supercomputadora para todos

Hace poco colaboré en Kickstarter en la finaciación de un nuevo tipo de supercomputadora, llamada Parallella. Es un proyecto muy revolucionario, porque lleva el poder del procesamiento paralelo en forma económica y con bajo consumo a todos aquellos que lo necesiten. Parallella es una computadora dentro de un circuito impreso de tamaño realmente pequeño. La idea es realmente muy buena. Parte de

Joaquin Sorianello: Dolor de espalda.

Desde ayer estoy con un dolor de espalda importante, incomodo. Decidí reposar un poco, y evitar mayoritariamente estar con la computadora, que claramente, no me ayuda a mejorar mi postura.

En este rato largo, de unas 20 horas para pensar desenfrenadamente, me dediqué a revisar las cosas que me hacen sentirme raro cuando estoy con otra gente y las que me dan miedo.

La conclusion es bastante clara: soy una máquina de pensar, y en ciertos casos, de pensar de mas.

Me sorprende pensar, que muchas veces las cosas que quiero, son mas simples que el modelo mental que fabrico de ellas y mas espontaneas. Usted, querido lector, comprenderá que me gusta hacer música y otro tipo de cosas llamemos creativas, movilizadas, principalmente por la espontaneidad.

Hace un tiempo leí un libro llamado "Free Play" que habla un poco de lo procesos creativos y la improvisación musical. El autor diferencia claramente el "Juego Libre" que acompaña la creación de cosas (no nos importa si nuevas o no) y el proceso posterior de edición que completa, o refina la creación.

Me di cuenta, que en mi cabeza los dos procesos ocurren simultáneamente, por algún designio de un gen adicto a la concurrencia y la paralelización de procesos. Y como me gusta generarme paradigmas validos para seguir pensando mas y mas, a raiz de eso puedo explicarme, de alguna forma lógica, rebuscada e inhumana, varios comportamientos o cosas que nunca puedo lograr. O que al menos no puedo observar que logro.

Es ese proceso de autocensura constante, que no logra llevarme a intentar. Y ahi, es donde está la trampa. Porque, de las experiencias podemos aprender, y sacar conclusiones que nos ayuden a abordar otros intentos con mayor exito.

Y la pregunta de como medimos el éxito, lo dejo como tarea para el hogar. Quizás una respuesta esta justo al costado, y como sigo mirando para adelante, solamente, cual caballo con anteojeras, siga un largo trecho sin notarla.

Joaquin Sorianello: Las Cosas Cambian

Hace bastante, pero bastante en serio, que no escribo en  este blog. Pero hoy, robándole un rato al sueño, me compro el desafio, y despunto al vicio de contar.

Es que las cosas cambian, y lo que uno vió ayer, y consideró una referencia válida, absoluta e inamovible, no es ni valida, ni absoluta, ni inamovible hoy. Es que la vida es mas compleja, es mucho mas compleja.

Porque tengo la certeza de que todos vamos a morir sin entenderla. Pero quizas, si logramos ser sabios, y aprender del vasto conflicto, lleguemos a ese punto de inflexión, al menos con la certeza de que buscamos todas las formas posibles de disfrutarla al máximo.

Es que existe mas que la búsqueda "estrella", "primero en profundidad" y otras que pregonan los textos de inteligencia artificial. Es la búsqueda, que ya de nacimiento sabe de la infinitud del universo y la certeza de que nunca se llegará a la respuesta esperada. Pero igual decide ser. Y transcurrir, despacio, muy despacio, llevandonos.

Y en el camino nos acerca a cosas, a gente, a proyectos, a historias, que valen la pena. Y la búsqueda en pleno ejercicio de sus derechos, se redefine y vuelve a llevarnos.

Y los seguira haciendo.

Ramiro Algozino: Qt Apps look like crap in elementaryOS

I’m running the beta1 of elementaryOS (http://elementaryos.org), so far I’m loving it! 😀 but, as you might know, I use Qt4 for my developments and I happen to like a lot of apps written with this framework, the problem is that eOS doesn’t have the qt4lib installed by default and when you install it and run any Qt app it looks like total crap. Like going back to Gnome 1.0. And you can get an error saying that “QGtkStyle was unable to detect the current GTK+ theme”.

You can solve this with this following command:

gconftool-2 --set --type string /desktop/gnome/interface/gtk_theme elementary

Yay! Now you can enjoy your Qt Apps in eOS 🙂