[pyar] Convirtiendo tipos automáticamente en SQLAlchemy

Facundo Batista facundobatista en gmail.com
Mie Oct 30 15:19:43 -03 2019


El mié., 30 de oct. de 2019 a la(s) 15:01, Matías Bellone
(matiasbellone en gmail.com) escribió:

>
> Así que evidentemente si vas a ejecutar queries en texto, tenés que hacer la traducción a mano.
>
> Habiendo dicho todo esto, lamentablemente mis pruebas del siguiente pedazo de código no anduvieron :(
>
> query = text("select test_enum from test;").columns(test_enum=MyWeirdType)
> row = session.execute(query).fetchone()

Me puse a leer un poco esto que pasaste, gracias!

Por otro lado, te cuento que este hack ESPANTOSO hace lo que quiero:

row = session.execute("select test_enum from test;").fetchone()
row._keymap['test_enum'] = (MyWeirdType.__getitem__,) +
tuple(row._keymap['test_enum'][1:])
assert isinstance(row.test_enum, MyWeirdType)

...pero solo si el RowProxy que uso es el definido en Python, si me
usa la extensión en C no!

Entonces a lo que apunto es de alguna manera definirle el processor en
el keymap "de la manera correcta" para que funcione siempre :)

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista


Más información sobre la lista de distribución pyar