jueves, 5 de noviembre de 2009

Eliminando warnings de mysqldb en django

Ahora que nos pasamos a django de verdad, tengo un par de días de trabajar con lo de base de datos . Una de las primeras cosas que me llamó la atención es el siguiente error:

/var/lib/python-support/python2.6/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet

Me medio hice a la idea de dejarlo así, sólo era un warning, después de todo. Pero acá encontré un poco de esperanza (aunque, leyendo el código, me di cuenta que no tenía nada que ver) y me decidí a deshacerme del error. Al parecer se debe a que el mysqldb utiliza el módulo sets de python acá. Basado en esta información hice lo siguiente:
  1. Edité el archivo /var/lib/python-support/python2.6/MySQLdb/__init__.py e hice los siguientes cambios:
Quité este import: from sets import ImmutableSet (en la línea 34)
y cambié
class DBAPISet(ImmutableSet):
por
class DBAPISet(frozenset):
en la línea 35.

2. En el archivo /var/lib/python-support/python2.6/MySQLdb/converters.py
Quité este import: from sets import BaseSet, Set (en la línea 37)
Y cambié Set por set en la línea 130 (donde dice Set:Set2Str )

Y ahora no hay errores en las cosas relacionadas con la base de datos mysql ;)

No hay comentarios:

Publicar un comentario