Versión recursiva de 'recargar'
Cuando estoy desarrollando el código Python, normalmente lo pruebo de forma ad hoc en el intérprete. Enfermoimport some_module
, pruébelo, encuentre un error, corríjalo y guárdelo, y luego use el comando incorporadoreload
función parareload(some_module)
y prueba de nuevo.
Sin embargo, supongamos que ensome_module
yo tengoimport some_other_module
, y mientras pruebasome_module
Descubro un error ensome_other_module
y arreglarlo. Ahora llamandoreload(some_module)
no volverá a importar recursivamentesome_other_module
. Tengo que reimportar manualmente la dependencia (haciendo algo comoreload(some_module.some_other_module)
oimport some_other_module; reload(some_other_module)
, o, si he cambiado un montón de dependencias y perdido la pista de lo que necesito recargar, debo reiniciar todo el intérprete.
Lo que sería más conveniente es que si hubiera algunarecursive_reload
función, y yo podría hacerrecursive_reload(some_module)
y tener a Python no solo recargarsome_module
, pero también recursivamente recarga cada módulo quesome_module
Importa (y todos los módulos que importa cada uno de esos módulos, y así sucesivamente) para que pueda estar seguro de que no estaba usando una versión antigua de ninguno de los otros módulos en los quesome_module
depende
No creo que haya nada incorporado en Python que se comporte como elrecursive_reload
función que describo aquí, pero ¿hay una manera fácil de hackear algo así juntos?