ipython autoreload
Cuando alguien está chalao, escribe un intérprete de su lenguaje favorito.
Cuando alguien está loco del todo, escribe ipython.
Resulta difícil describir qué es ipython… Ya que resulta difícil saber qué no es. Quedémonos con que es un intérprete de Python con esteroides.
Uno de esos esteroides es que nos permite recargar automáticamente los módulos en cuanto cambia algún fichero. Y aquí os explico cómo hacerlo.
Método manual
Arrancamos ipython y cargamos la extensión “autoreload”:
|
|
Ya tenemos cargada la extensión, pero no la estamos usando. Vamos a ello:
|
|
Y ya está :)
Otros modos
Los modos son:
- 0: deshabilitado
- 1: recarga los módulos importados con %aimport
- 2: recarga los módulos importados de forma habitual, pero no con %aimport.
Autoreload automático
Si nos ha gustado el invento, podemos habilitarlo “para siempre”. Para ello, basta con crearnos un perfil de configuración de ipython:
|
|
Ahora editamos el archivo que se nos indica, de manera que tenga las siguientes claves:
|
|
Advertencias
Eso de la recarga de módulos automática está muy chulo, pero es difícil de narices. Así que no lo uséis con cosas muy importantes porque es fácil que falle y tengáis que seguir el antiguo método de cerrar la terminal ipython y abrir otra.
Además, los objetos ya creados no se actualizarán. Éstos ya tienen sus métodos definidos y no se pueden cambiar “en caliente”, ya que no se puede determinar cuáles de ellos son dinámicos y cuáles estáticos.
Tenéis más información y otras advertencias en la documentación.