El día 10 de septiembre de 2010 03:13, Tordek <kedrot@???> escribió:
> On 10/09/10 00:43, Fabian Ezequiel Gallina wrote:
>>
>> Hola lista,
>>
>> Les cuento que ando laburando en un proyecto en donde me encuentro con
>> cosas de este estilo:
>>
>> def funcion_loca():
>> from otra.app import Algo
>> return Algo()
>
>> Segunda solución: Lazy Imports, es decir que el módulo realmente se
>> importe a la hora de que se use.
>
> ¿No sería posible armar algo como...
>
> @lazy_import(otra.app.Algo)
> def funcion_loca()
> [...]
>
> definiendo lazy_import como un decorator que, al llamar la función, importe
> el módulo, y reemplace la definición de la función por una idéntica, pero
> sin el import?
>
> Digo, no soy muy ducho con los decorators en Python (y, según todos los
> comentarios a este hilo no parece que valga la pena hacerlo), pero... ¿se
> puede?
>
Mejor todavía, podría solo hacer el import y ya :).
Al margen de eso me quedé con esta implementación de los muchachos de
mercurial[0] que según mi criterio tiene bastante más onda que la de
los muchachos de bazaar[1] para mi caso.
Con esa implementación sólo los módulos que se importan de la
siguiente forma son hechos lazy:
import a.b
import a.b.c as c
Lo cual me viene al pelo porque solo en algunos casos necesito que sea
lazy. De todas formas, probablemente termine hackeando un poco cómo
establece qué import es lazy y cual no para que se amolde un poco
mejor a la app dónde estoy laburando.
Qué masa sería que python venga con algo como esto de fábrica, vi que
hay unos peps[2][3]. Es un garrón que no haya pasado nada :(
Imagino un futuro con:
lazy_import blah
from sarasa lazy_import dada, blabla
Gracias a todos por las respuestas.
[0]
http://selenic.com/repo/hg/file/5d22e631c365/mercurial/demandimport.py
[1]
http://bazaar.launchpad.net/~bzr/bzr/trunk/annotate/head:/bzrlib/lazy_import.py
[2]
http://permalink.gmane.org/gmane.comp.python.devel/90949
[3]
http://www.python.org/dev/peps/pep-0369/
Saludos,
--
Fabián E. Gallina
http://www.from-the-cloud.com
_______________________________________________
pyar mailing list pyar@???
http://listas.python.org.ar/listinfo/pyar
PyAr - Python Argentina - Sitio web:
http://www.python.org.ar/